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

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

    概念解析:挂载点
      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指定深入子目录的

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

     
    二、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)的所拥有的操作权限。
      
     
     
    三、修改所属用户和用户组
      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-INFMANIFEST.MF文件,当你找成JAR包时,它会自动生成。
      JAR包是由JDK安装目录injar.exe命令生成的,当我们安装好JDK,设置好path路径,就可以正常使用jar.exe命令,它会用lib ool.jar工具包中的类。
     
      (1)创建打包文件,并显示打包过程
    $ jar -cvf 新文件名称.jar  源文件或源文件夹

      (2)显示jar包

    $ jar -tvf 文件名称.jar

      (3)解压jar包

    $ jar -xvf 文件名称.jar 
     
  • 相关阅读:
    Eclipse / android studio 添加第三方jar包 步骤
    Android checkbox 自定义点击效果
    Android 程序打包和安装过程
    Android 基础
    (转)Genymotion安装virtual device的“unable to create virtual device, Server returned Http status code 0”的解决方法
    (转)eclipse 导入Android 项目 步骤
    微信开放平台注册 步骤
    Android Studio 初级安装
    数组
    作用域问题代码
  • 原文地址:https://www.cnblogs.com/newbie27/p/11099054.html
Copyright © 2011-2022 走看看