Linux常用命令(3)--文件管理(查看文件大小权限信息、修改文件所属用户和操作权限、压缩解压文件)

时间:2022-07-09 16:27:44
一、查看文件大小、文件夹子目录
 
1、查看文件系统磁盘大小、挂载点
  • df :      可以查看一级文件夹大小(默认单位为:k)、使用比例、档案系统及其挂入点(但对文件却无能为力)。
  • df -T : 显示分区的文件系统(不带单位,默认为k;结果中包含分区文件类型Type)
  • df -h : 显示文件系统的可用空间及使用情形(采用用户易读的方式)

Linux常用命令(3)--文件管理(查看文件大小权限信息、修改文件所属用户和操作权限、压缩解压文件)

概念解析:挂载点   Linux是树型目录结构,Linux只有一个根目录'/',其余各个目录都是基于这个根目录发散,就是树形结构。Linux分区是将某个分区挂到一个对应的目录上。例如/home对应一块分区,home目录就是这块分区的挂载点;/boot对应一块分区,boot目录就是这块分区的挂载点;/usr对应一块分区,usr目录就是这块分区的挂载点。你可以形象的理解:一棵大树(根目录/)有很多树枝(目录,挂载点),每个树枝上都挂着一个箱子(分区,存储空间)。

  虽然硬盘分区表中最多能存储四个分区,但我们实际使用时一般只分为两个分区,一个是主分区(Primary Partion)一个是扩展分区(extended partition)两种,主分区可以马上被使用但不能再分区,扩展分区必须再进行分区后才能使用,也就是说它必须还要进行二次分区。那么由扩充分区再分下去的是什么呢?它就是逻辑分区(Logical Partion),况且逻辑分区没有数量上限制。 

  Linux无论有几个分区,分给哪一目录使用,它归根结底就只有一个根目录,一个独立且唯一的文件结构。每个分区都是用来组成整个文件系统的一部分,因为它采用了一种叫“挂载点”的处理方法,它的整个文件系统中包含了一整套的文件和目录,且将一个分区和一个目录联系起来。这时要载入的一个分区将使它的存储空间在一个目录下获得。

  Linux的分区是不同于其它操作系统的分区,它的分区格式常用的有Ext3和Swap两种,Ext3用于存放系统文件,Swap则作为交换分区(相当于windows中的虚拟内存文件)。

        推荐阅读: Linux系统分区及挂载点概念解析

概念解析:tmpfs
  tmpfs是一种虚拟内存文件系统,而不是块设备。是基于内存的文件系统,创建时不需要使用mkfs等初始化。它最大的特点就是它的存储空间在VM(virtual memory虚拟内存),VM 是由linux内核里面的vm子系统管理的。
  linux下面VM的大小由RM(Real Memory真实内存)和swap组成,RM的大小就是物理内存的大小,而Swap的大小是由自己决定的。Swap是通过硬盘虚拟出来的内存空间,因此它的读写速度相对 RM 要慢许多,当一个进程申请一定数量的内存时,如内核的 vm 子系统发现没有足够的 RM 时,就会把 RM 里面的一些不常用的数据交换到Swap里面,如果需要重新使用这些数据再把它们从Swap交换到 RM 里面。如果有足够大的物理内存,可以不划分Swap分区。

        推荐阅读: tmpfs介绍及使用

 
2、查看文件(文件夹)大小
  • du :可以查看文件及文件夹的大小。
  • du -sh 文件夹路径 : 查看当前目录下各个文件及目录占用空间大小
  • du -h --max-depth=1 文件夹路径 : max-depth指定深入子目录的

Linux常用命令(3)--文件管理(查看文件大小权限信息、修改文件所属用户和操作权限、压缩解压文件)

 
3、查看文件夹包含的内容(子目录)
  • ls 文件夹路径  :   查看文件夹下的子目录(结果中不包含隐藏的文件)
  • ls -a 文件夹路径 :  查看文件夹下的子目录,结果中包含隐藏的文件(-a)
  • ls -l  文件夹路径  : (此命令可简写为:ll) 查看文件的详细信息,包括修改权限、所属用户、字节大小、更新时间等

Linux常用命令(3)--文件管理(查看文件大小权限信息、修改文件所属用户和操作权限、压缩解压文件)

 
二、chmod 命令:修改文件/文件夹权限
  chmod命令是非常重要的,用于改变文件或目录的访问权限。用户用它控制文件或目录的访问权限。
  该命令有两种用法。一种是包含字母和操作符表达式的文字设定法;另一种是包含数字的数字设定法。
  
  1、文字设定法
chmod [who] [+ | - | =] [mode] 文件名称/文件夹名称
注:chmod命令可加入其它额外的参数,如:chmod -R ,将文件夹的子目录的权限也一起修改

  命令中各选项的含义为:

  (1)操作对象who可是下述字母中的任一个或者它们的组合:
  •   u 表示“用户(user)”,即文件或目录的所有者。
  •   g 表示“同组(group)用户”,即与文件属主有相同组ID的所有用户。
  •   o 表示“其他(others)用户”。
  •   a 表示“所有(all)用户”。它是系统默认值。
  (2)操作符号可以是:
  •   + 添加某个权限。
  •   - 取消某个权限。
  •   = 赋予给定权限并取消其他所有权限(如果有的话)。
   (3)设置mode所表示的权限可用下述字母的任意组合:
  •   r 可读。
  •   w 可写。
  •   x 可执行。x只有目标文件对某些用户是可执行的或该目标文件是目录时才追加x 属性。
  
  2、数字设定法
  我们必须首先了解用数字表示的属性的含义:0表示没有权限,1表示可执行权限,2表示可写权限,4表示可读权限,然后将其相加。所以数字属性的格式应为3个从0到7的八进制数,其顺序分别代表用户(u)、用户组(g)、其它用户(o)的所拥有的操作权限。
   Linux常用命令(3)--文件管理(查看文件大小权限信息、修改文件所属用户和操作权限、压缩解压文件)
 
 
三、修改所属用户和用户组
  1、chown命令:用来修改文件或文件夹的所属用户和用户组。
chown  所属用户:所属用户组  -R  文件名

  以下列举了三个chown命令的修改例子:

  • chown  sinosoft   ./test/                  修改test文件夹的所属用户为:sinosoft
  • chown  sinosoft:sinosoft  ./test/     修改test文件夹的所属用户为:sinosoft,所属用户组为:sinosoft
  • chown  :sinosoft   ./test/                 修改test文件夹的所属用户组为:sinosoft
  2、chgrp命令:修改所属用户组
  使用chgrp命令可以修改文件或目录所属的组:
chgrp  用户组名称  目录或文件名
 
 
四、文件压缩  与  文件解压缩
  打包,即文件压缩,是指将一大堆文件或目录什么的变成一个总的文件;
  压缩,则是将一个大的文件通过一些压缩算法变成一个小文件。
 
1、tar 命令
  tar 可以为文件和目录创建档案。利用tar,用户可以为某一特定文件创建档案(备份文件),也可以在档案中改变文件,或者向档案中加入新的文件。tar最初被用来在磁带上创建档案,现在,用户可以在任何设备上创建档案,如软盘。利用tar命令,可以把一大堆的文件和目录全部打包成一个文件,这对于备份文件或将 几个文件组合成为一个文件以便于网络传输是非常有用的。Linux上的tar是GNU版本的。
1)操作".tar"文件:
  打包 :   tar  -cvf   新文件名称.tar  源文件1  源文件2  源文件3
  解压 :  tar  -xvf    源文件名称.tar    

2)操作".tar.gz"文件
  打包 :   tar  -cvf   新文件名称.tar  源文件1  源文件2  源文件3
  解压 :  tar  -xvf    源文件名称.tar  

  

tar命令语法:

tar [主选项+辅选项] 文件或者目录 主选项:   c 创建新的档案文件。   r 把要存档的文件追加到档案文件的未尾。   t 列出档案文件的内容,查看已经备份了哪些文件。   u 更新文件。就是说,用新增的文件取代原备份文件,如果在备份文件中找不到要更新的文件,则把它追加到备份文件的最后。   x 从档案文件中释放文件。 辅助选项:   b 该选项是为磁带机设定的。其后跟一数字,用来说明区块的大小,系统预设值为20(20*512 bytes)。   f 使用档案文件或设备,这个选项通常是必选的。   k 保存已经存在的文件。例如我们把某个文件还原,在还原的过程中,遇到相同的文件,不会进行覆盖。   m 在还原文件时,把所有文件的修改时间设定为现在。   M 创建多卷的档案文件,以便在几个磁盘中存放。   v 详细报告tar处理的文件信息。如无此选项,tar不报告文件信息。   w 每一步都要求确认。   z 用gzip来压缩/解压缩文件,加上该选项后可以将档案文件进行压缩,但还原时也一定要使用该选项进行解压缩。
例子: # tar
-cf all.tar *.jpg   这条命令是将所有.jpg的文件打成一个名为all.tar的包。-c是表示产生新的包,-f指定包的文件名。   # tar -rf all.tar *.gif   这条命令是将所有.gif的文件增加到all.tar的包里面去。-r是表示增加文件的意思。   # tar -uf all.tar logo.gif   这条命令是更新原来tar包all.tar中logo.gif文件,-u是表示更新文件的意思。   # tar -tf all.tar   这条命令是列出all.tar包中所有文件,-t是列出文件的意思   # tar -xf all.tar   这条命令是解出all.tar包中所有文件,-x是解开的意思 以上就是tar的最基本的用法。
为了方便用户在打包解包的同时可以压缩或解压文件,tar提供了一种特殊的功能。这就是tar可以在打包或解包的同时调用其它的压缩程序,比如调用gzip、bzip2等。
1) tar调用gzip   gzip是GNU组织开发的一个压缩程序,.gz结尾的文件就是gzip压缩的结果。与gzip相对的解压程序是gunzip。tar中使用-z这个参数来调用gzip。下面来举例说明一下:   # tar -czf all.tar.gz *.jpg //将所有.jpg的文件打成一个tar包,并且将其用gzip压缩,生成一个gzip压缩过的包   # tar -xzf all.tar.gz //这条命令是将上面产生的包解开。 对于.gz结尾的文件,gunzip解压命令如下:   gzip -d all.gz   gunzip all.gz 2) tar调用bzip2   bzip2是一个压缩能力更强的压缩程序,.bz2结尾的文件就是bzip2压缩的结果。与bzip2相对的解压程序是bunzip2。tar中使用-j这个参数来调用bzip2。下面来举例说明一下:   # tar -cjf all.tar.bz2 *.jpg //将所有.jpg的文件打成一个tar包,并且将其用bzip2压缩,生成一个bzip2压缩包   # tar -xjf all.tar.bz2 //这条命令是将上面产生的包解开。 对于.bz2结尾的文件 ,bunzip2解压命令如下:   bzip2 -d all.bz2   bunzip2 all.bz2   3)tar调用compress   compress也是一个压缩程序,但是好象使用compress的人不如gzip和bzip2的人多。.Z结尾的文件就是compress压缩的结果。与 compress相对的解压程序是uncompress。tar中使用-Z这个参数来调用gzip。下面来举例说明一下:   # tar -cZf all.tar.Z *.jpg //将所有.jpg的文件打成一个tar包,并将其用compress压缩,生成一个compress压缩包   # tar -xZf all.tar.Z //这条命令是将上面产生的包解开 对于.Z结尾的文件,uncompress解压命令如下:  uncompress all.Z

 

2、zip命令
  对于Window下的常见压缩文件.zip,Linux也有相应的方法来解压它们:
  linux下提供了zip和unzip程序,zip是压缩程序,unzip是解压程序。
   (1)安装zip命令
安装zip/unzip服务
$ sudo yum install zip unzip

  (2)文件打包

# zip  all.zip  *.jpg    //将所有.jpg的文件压缩成一个zip包
# zip -r all.zip  ./*    //将当前目录下的所有文件和文件夹全部压缩成all.zip文件,-r表示递归压缩子目录下所有文件

  (3)解压文件

# unzip  all.zip                      //把all.zip文件解压到当前目录下
# unzip -o -d  /home/sunny  all.zip    //把all.zip文件解压到 /home/sunny/
                                       // -o:不提示的情况下覆盖文件;
                                       // -d:指明将文件解压缩到/home/sunny目录下;

 

3、jar命令
  JAR包是Java中所特有一种压缩文档,其实大家就可以把它理解为.zip包。当然也是有区别的,JAR包中有一个META-INF\MANIFEST.MF文件,当你找成JAR包时,它会自动生成。
  JAR包是由JDK安装目录\bin\jar.exe命令生成的,当我们安装好JDK,设置好path路径,就可以正常使用jar.exe命令,它会用lib\tool.jar工具包中的类。
 
  (1)创建打包文件,并显示打包过程
$ jar -cvf 新文件名称.jar  源文件或源文件夹

  (2)显示jar包

$ jar -tvf 文件名称.jar

  (3)解压jar包

$ jar -xvf 文件名称.jar