zoukankan      html  css  js  c++  java
  • Linux

    1. ncompress

      compress命令是一个相当古老的 unix 档案压缩指令,压缩后的文件会加上一个 .Z 的后缀名,默认不会保留源文件。compress只能对文件进行压缩,若要压缩目录,先使用tar命令归档为一个文件后,再进行压缩,此命令已经很少被使用。

    压缩后缀: .Z 

    安装:  sudo yum install ncompress 

    语法: compress [options] file... 

           uncompress [options] file... 

    选项:

    -c:将压缩后的数据输出到屏幕,而不是压缩文件中。可通过重定向导入文件中,达到修改压缩文件名的作用。
    -f:强制压缩,若目标文件存在,则覆盖。
    -v:输出程序执行的信息。
    -b:设定压缩程度,值越大,压缩比例越大,范围是9-16,默认是16.
    -d:解压搜,等同于uncompress

    压缩:

      例1:压缩functions文件

    $ compress functions
    $ ls
    functions.Z

      例2:强制压缩,若存在同名的压缩文件,则覆盖

    $ compress -f functions
    $ ls
    functions.Z

      例3:使用-c选项将压缩后的数据输出到屏幕,然后使用重定向将数据导入文件,实现重命名压缩文件

    $ compress -c functions > fun.Z
    $ ls
    functions  fun.Z

      例4:指定压缩程度

    $ compress -vb 11 functions 
    functions:  -- replaced with functions.Z Compression: 49.11%
    $ ls
    functions.Z

      例5:对指定目录下的所有文件进行压缩

    $ tree dir
    dir
    ├── dir1
    │   ├── f11
    │   └── f12
    ├── dir2
    └── f1
    
    $ compress -rf dir
    $ tree dir
    dir
    ├── dir1
    │   ├── f11.Z
    │   └── f12.Z
    ├── dir2
    └── f1.Z

    解压缩:

      例1:解压缩文件

    # 方法1:使用compress -d解压缩
    $ ls
    functions.Z
    $ compress -d functions.Z 
    $ ls
    functions
    
    
    # 方法2:使用uncompress解压缩
    $ ls
    functions.Z
    $ uncompress functions.Z 
    $ ls
    functions

     

    2. gzip

      gzip是在Linux系统中经常使用的一个对文件进行压缩和解压缩的命令,据统计,gzip命令对文本文件有60%~70%的压缩率。减少文件大小有两个明显的好处,一是可以减少存储空间,二是通过网络传输文件时,可以减少传输的时间,gzip压缩时,默认不保留源文件,压缩后生成.gz后缀的压缩文件。gzip不能对目录进行压缩,首先将目录使用tar命令进行归档为一个文件,再压缩。

    压缩后缀: .gz 

    安装:  sudo yum install gzip 

    语法:  gzip [options] file ... 

                 gunzip [options] file ... 

                 zcat [options] file ... 

    选项:

    -c:压缩后的数据输出到屏幕,而不是默认的文件。可以使用重定向将导入文件,实现改变压缩后文件名的作用。
    -d:解压缩。
    -f:强制压缩
    -N:指定压缩比例,数值越大,压缩比例越大,范围为0-9,默认为6、
    -l:查看压缩文件的信息。
    -r:对指定的目录中的所有文件进行分别压缩
    -v:查看命令执行的信息。

    压缩:

      例1:压缩functions文件

    $ gzip functions 
    $ ls
    functions.gz

      例2:强制压缩,若存在同名的压缩文件,则覆盖

    $ gzip -f functions
    $ ls
    functions.gz

      例3:使用-c选项将压缩后的数据输出到屏幕,然后使用重定向将数据导入文件,实现重命名压缩文件,并保留源文件

    $ gzip -c functions > fun.gz
    $ ls
    functions  fun.gz

      例4:指定压缩比例

    $ gzip -v -9 functions 
    functions:     72.6% -- replaced with functions.gz
    $ ls
    functions.gz

      例5:对指定目录下的所有文件进行压缩

    $ tree
    .
    └── dir
        ├── dir1
        │   ├── f11
        │   └── f12
        ├── dir2
        ├── f1
        └── f2
    
    $ gzip -fr dir
    $ tree
    .
    └── dir
        ├── dir1
        │   ├── f11.gz
        │   └── f12.gz
        ├── dir2
        ├── f1.gz
        └── f2.gz

      例6:查看压缩文件信息

    $ gzip -l functions.gz 
             compressed        uncompressed  ratio uncompressed_name
                   4836               17500  72.5% functions

    解压缩:

      例1:解压缩文件

    # 方法1:使用gzip -d解压缩
    $ gzip -d functions.gz 
    $ ls
    functions
    
    # 方法2:使用gunzip解压缩
    $ gunzip functions.gz 
    $ ls
    functions

    查看压缩内容:

      例1:不解压缩文件,查看压缩内容

    $ zcat functions.gz 
    ...
    $ ls
    functions.gz

     

    3. bzip2

      bzip2是Linux系统中常用的压缩命令,压缩率比gzip还高,使用bzip2压缩文件,默认删除源文件,可以使用-k选项保留源文件。bzip2和上面的压缩命令一样,不能对目录进行压缩,通常将目录进行归档为一个文件后再进行压缩。

    压缩后缀: .bz2

    安装:  sudo yum install bzip2 

    语法:   bzip [options] file ... 

            bunzip2 [options] file ... 

            bzcat [options] file ... 

    选项:

    -c:配合-d选项,将压缩文件解压输出到屏幕,压缩文件仍然保留
    -d:解压缩
    -k:保留源文件
    -v:输出命令执行信息
    -f:强制解压缩,当目标文件存在时,覆盖目标文件。
    --:将该选项后面的所有参数当做文件,即使文件是以中划线开头。

    压缩:

      例1:压缩functions文件

    $ bzip2 functions 
    $ ls
    functions.bz2

      例2:压缩functions文件,并保留源文件

    $ bzip2 -k functions 
    $ ls
    functions  functions.bz2

      例3,:强制压缩functions文件,若压缩文件同名,则覆盖,并输出压缩信息

    $ bzip2 -vf functions 
      functions:  3.652:1,  2.191 bits/byte, 72.62% saved, 17500 in, 4792 out.
    $ ls
    functions.bz2

      例4:压缩 -functions文件

    $ bzip2 -- -functions 
    $ ls
    -functions.bz2

    解压缩:

      例1:解压缩文件

    # 方法1:使用bzip2 -d解压缩
    $ bzip2 -d functions.bz2 
    $ ls
    functions
    
    # 方法2:使用bunzip2解压缩
    $ bunzip2 functions.bz2 
    $ ls
    functions

      例2:输出压缩内容,不删除压缩文件

    $ bzip2 -dc functions.bz2
    ...

    查看压缩内容:

      例1:查看压缩文件内容

    $ bzcat functions.bz2
    ...

     

    4. xz

      xz是一个使用LZMA压缩算法的无损数据压缩文件格式,xz压缩效率比bzip2还高。

    压缩后缀: .xz

    安装:   sudo yum install xz 

    语法:   xz [options] file ... 

             unxz [options] file ... 

             xzcat [options] file ... 

    选项:

    -d:解压缩文件。
    -c:配合-d选项,将压缩文件内容输出到屏幕,而不真正解压缩文件。
    -f:强制解压缩文件,若目标文件与现有文件重名,则覆盖现有文件。
    -l:输出压缩文件信息。
    -k:压缩或解压缩时,保留源文件
    -N:指定压缩比例,压缩值范围时0-9,默认是6.
    -v:输出执行命令信息。

    压缩:

      例1:压缩functions文件。

    $ xz functions 
    $ ls
    functions.xz

      例2:压缩functions文件,并保留源文件。

    $ xz -k functions 
    $ ls
    functions  functions.xz

      例3:强制压缩functions文件,若生成的压缩文件与现有文件重名,则覆盖现有文件。

    $ xz -f functions

      例4:查看当前压缩文件信息。

    $ xz -l functions.xz 
    Strms  Blocks   Compressed Uncompressed  Ratio  Check   Filename
        1       1      4,688 B     17.1 KiB  0.268  CRC64   functions.xz

      例5:指定压缩比例。

    $ xz -9 functions 
    $ ls
    functions.xz

    解压缩:

      例1:解压缩functions.xz文件

    # 方法1:使用xz -d解压缩文件
    $ xz -d functions.xz 
    $ ls
    functions
    
    # 方法2:使用unxz解压缩文件
    $ unxz functions.xz 
    $ ls
    functions 

      例2:输出压缩内容,不删除压缩文件

    $ unxz functions.xz 
    $ ls
    functions

     

    5. zip、unzip

      zip和rar是Windows上常用的压缩文件,Linux上有对应的命令来压缩和解压缩此类文件,zip压缩文件不删除源文件,并且可以对压缩包进行加密。

    压缩后缀: .zip

    安装: sudo yum install zip unzip  

    语法: zip [options] file.zip file ... 

           unzip [options] file.zip  

    选项:

    # zip 命令选项
    -r:递归压缩,对目录进行压缩,使用该选项。
    -u:对压缩包内的文件进行更新,在不解压压缩文件的情况下,对压缩包内特定的文件进行更新。
    -g:将新文件压缩后附加到压缩包内。
    -v:显示命令执行过程。
    -d:删除压缩包内的指定文件。
    -P password:对压缩文件设置密码保护。
    -N:设定压缩比例,数值范围0-9。
    -x:压缩文件时,排除某个文件。
    
    # unzip 命令选项
    -l:查看压缩文件所包含的文件。
    -v:查看压缩文件内包含的文件、大小等信息。
    -b:指定解压文件存放目录,默认为当前目录。
    -n:解压时对重名的文件不进行覆盖。
    -o:解压时对重名的文件进行覆盖。
    -p:将压缩文件展开输出到屏幕上,但不进行任何转换。
    -c:与-p类似

    压缩:

      例1:压缩functions文件

    $ zip functions.zip functions
      adding: functions (deflated 73%)
    $ ls
    functions  functions.zip

      例2:压缩目录network

    $ zip -r networks.zip networks 
      adding: networks (deflated 19%)
    $ ls
    networks  networks.zip

      例3:压缩functions文件,并设置密码

    $ zip -P123 networks.zip networks 
      adding: networks (deflated 19%)
    
    # 解压的时候需要输入密码才能解压
    $ unzip networks.zip 
    Archive: networks.zip
    [networks.zip] networks password:

      例4:压缩文件functions,并指定压缩率

    $ zip -9 functions.zip functions 
      adding: functions (deflated 73%)
    $ ls
    functions  functions.zip

      例5:删除压缩包repos.zip中的CentOS-Base.repo文件

    # 查看压缩包文件列表
    $ unzip -l repos.zip 
    Archive:  repos.zip
      Length      Date    Time    Name
    ---------  ---------- -----   ----
            0  08-08-2018 19:14   repos/
         2573  04-18-2018 04:16   repos/CentOS-Base.repo
          664  06-27-2018 13:02   repos/epel.repo
    ---------                     -------
         3237                     3 files
    
    # 删除压缩包中的CentOS-Base.repo文件
    $ zip -d repos.zip repos/CentOS-Base.repo 
    deleting: repos/CentOS-Base.repo
    
    # 再次查看,文件已从压缩包中删除
    $ unzip -l repos.zip 
    Archive:  repos.zip
      Length      Date    Time    Name
    ---------  ---------- -----   ----
            0  08-08-2018 19:14   repos/
          664  06-27-2018 13:02   repos/epel.repo
    ---------                     -------
          664                     2 files

       例6:将文件CentOS-Base.repo重新压缩并附件到压缩包repos.zip中

    # 将文件追加到压缩包中
    $ zip -g repos.zip repos/CentOS-Base.repo 
      adding: repos/CentOS-Base.repo (deflated 77%)
    
    # 再次查看,发现文件已经追加到压缩包末尾
    $ unzip -l repos.zip 
    Archive:  repos.zip
      Length      Date    Time    Name
    ---------  ---------- -----   ----
            0  08-08-2018 19:14   repos/
          664  06-27-2018 13:02   repos/epel.repo
         2573  04-18-2018 04:16   repos/CentOS-Base.repo
    ---------                     -------
         3237                     3 files

    解压缩:

      例1:把文件解压到当前目录

    $ unzip repos.zip 
    Archive:  repos.zip
       creating: repos/
      inflating: repos/epel.repo         
      inflating: repos/CentOS-Base.repo  
    $ ls
    repos  repos.zip

      例2:把文件解压到指定目录

    $ unzip -d ./tmp repos.zip 
    Archive:  repos.zip
       creating: ./tmp/repos/
      inflating: ./tmp/repos/epel.repo   
      inflating: ./tmp/repos/CentOS-Base.repo  
    $ ls ./tmp/
    repos

      例3:查看压缩包所包含的文件

    # 查看压缩包所包含的文件
    $ unzip -l repos.zip 
    Archive:  repos.zip
      Length      Date    Time    Name
    ---------  ---------- -----   ----
            0  08-08-2018 19:14   repos/
          664  06-27-2018 13:02   repos/epel.repo
         2573  04-18-2018 04:16   repos/CentOS-Base.repo
    ---------                     -------
         3237                     3 files
    
    # 查看压缩包内更详细的信息
    $ unzip -v repos.zip 
    Archive:  repos.zip
     Length   Method    Size  Cmpr    Date    Time   CRC-32   Name
    --------  ------  ------- ---- ---------- ----- --------  ----
           0  Stored        0   0% 08-08-2018 19:14 00000000  repos/
         664  Defl:N      226  66% 06-27-2018 13:02 0a73fe93  repos/epel.repo
        2573  Defl:N      591  77% 04-18-2018 04:16 8952469f  repos/CentOS-Base.repo
    --------          -------  ---                            -------
        3237              817  75%                            3 files

      例4:查看压缩包内的内容

    $ unzip -c repos.zip
    ...

    6. tar

      Linux中最常用的打包命令是tar,使用tar命令可以将多个文件或目录归档为一个文件,然后通过选项调用其他压缩命令对归档文件进行压缩。从而对多个文件的备份或在网络上传输提供了方便。此处先归档为一个文件,然后才压缩的目的是,很多压缩命令只能对单个文件进行压缩。

    压缩后缀: .tar

    安装:

    选项:

    -v:显示命令的执行过程。
    -c:创建归档。
    -r:追加文件至归档末尾。
    -u:更新归档中的文件。
    --delete:删除归档中的文件。
    -t:查看归档文件列表。
    -x:展开归档。
    -f ARCHIVE:指定归档名称。
    -C DIR:执行归档之前,切换工作目录到DIR下。
    -z:配合其他选项,创建归档并使用gzip压缩或解压gzip压缩过的归档。
    -j:配合其他选项,创建归档并使用bzip2压缩或解压bzip2压缩过的归档。
    -J:配合其他选项,创建归档并使用xz压缩或解压xz压缩过的归档。
    --exclude=PATTERN:排除不归档的文件。
    -X FILE:排除不归档的文件,只是将排除的文件路径统在文件FILE中列出。
    -T FILE:将要归档的所有文件路径在FILE中列出,然后使用-T选项指定该文件,实现对FILE中的所有文件进行归档。

    归档和展开  

      例1:将 /etc/yum.repos.d 目录下的所有文件归档为 repos.tar 

    $ tar -cf repos.tar /etc/yum.repos.d
    tar: Removing leading `/' from member names
    $ ls
    repos.tar

      例2:查看repos.tar归档中有哪些文件

    $ tar -tf repos.tar 
    etc/yum.repos.d/
    etc/yum.repos.d/epel.repo
    etc/yum.repos.d/repsbk/
    etc/yum.repos.d/repsbk/CentOS-Sources.repo
    etc/yum.repos.d/repsbk/CentOS-Media.repo
    etc/yum.repos.d/repsbk/CentOS-fasttrack.repo
    etc/yum.repos.d/repsbk/CentOS-Vault.repo
    etc/yum.repos.d/repsbk/CentOS-Debuginfo.repo
    etc/yum.repos.d/repsbk/CentOS-CR.repo
    etc/yum.repos.d/repsbk/CentOS-Base.repo
    etc/yum.repos.d/epel.repo.rpmnew
    etc/yum.repos.d/CentOS-Base.repo
    etc/yum.repos.d/epel-testing.repo

      例3:删除repos.tar归档中 etc/yum.repos.d/epel-testing.repo 文件

    $ tar --delete etc/yum.repos.d/epel-testing.repo -f repos.tar 
    
    # 查看文件etc/yum.repos.d/epel-testing.repo已被删除
    $ tar -tf repos.tar 
    etc/yum.repos.d/
    etc/yum.repos.d/epel.repo
    etc/yum.repos.d/repsbk/
    etc/yum.repos.d/repsbk/CentOS-Sources.repo
    etc/yum.repos.d/repsbk/CentOS-Media.repo
    etc/yum.repos.d/repsbk/CentOS-fasttrack.repo
    etc/yum.repos.d/repsbk/CentOS-Vault.repo
    etc/yum.repos.d/repsbk/CentOS-Debuginfo.repo
    etc/yum.repos.d/repsbk/CentOS-CR.repo
    etc/yum.repos.d/repsbk/CentOS-Base.repo
    etc/yum.repos.d/epel.repo.rpmnew
    etc/yum.repos.d/CentOS-Base.repo

      例4:将 /etc/yum.repos.d/epel-testing.repo 文件追加到repos.tar归档末尾

    $ tar -r /etc/yum.repos.d/epel-testing.repo -f repos.tar 
    tar: Removing leading `/' from member names
    
    #查看,文件已追加到归档末尾
    $ tar -tf repos.tar 
    etc/yum.repos.d/
    etc/yum.repos.d/epel.repo
    etc/yum.repos.d/repsbk/
    etc/yum.repos.d/repsbk/CentOS-Sources.repo
    etc/yum.repos.d/repsbk/CentOS-Media.repo
    etc/yum.repos.d/repsbk/CentOS-fasttrack.repo
    etc/yum.repos.d/repsbk/CentOS-Vault.repo
    etc/yum.repos.d/repsbk/CentOS-Debuginfo.repo
    etc/yum.repos.d/repsbk/CentOS-CR.repo
    etc/yum.repos.d/repsbk/CentOS-Base.repo
    etc/yum.repos.d/epel.repo.rpmnew
    etc/yum.repos.d/CentOS-Base.repo
    etc/yum.repos.d/epel-testing.repo

      例5:展开归档repos.tar

    $ tar -xf repos.tar$ ls
    etc  repos.tar

      例6:将/etc/yum.repos.d目录下的文件归档为repos.tar,归档后去除前缀/etc。

    $ tar -C /etc -cf repos.tar yum.repos.d
    
    $ tar -tf repos.tar 
    yum.repos.d/
    yum.repos.d/epel.repo
    yum.repos.d/repsbk/
    yum.repos.d/repsbk/CentOS-Sources.repo
    yum.repos.d/repsbk/CentOS-Media.repo
    yum.repos.d/repsbk/CentOS-fasttrack.repo
    yum.repos.d/repsbk/CentOS-Vault.repo
    yum.repos.d/repsbk/CentOS-Debuginfo.repo
    yum.repos.d/repsbk/CentOS-CR.repo
    yum.repos.d/repsbk/CentOS-Base.repo
    yum.repos.d/epel.repo.rpmnew
    yum.repos.d/CentOS-Base.repo
    yum.repos.d/epel-testing.repo

      例7:将/etc/yum.repos.d目录下的文件归档为repos.tar,但排除/etc/yum.repos.d/rspsbk目录和/etc/yum.repos.d/epel.repo.rpmnew文件。

    # 方法1:使用--exclude选项排除不归档的文件
    $ tar -cf repos.tar /etc/yum.repos.d --exclude /etc/yum.repos.d/repsbk --exclude /etc/yum.repos.d/epel.repo.rpmnew 
    tar: Removing leading `/' from member names
    
    # 方法2:将要排除的文件写入exclude_file中,使用选项-X指定该文件。
    $ cat exclude_file 
    /etc/yum.repos.d/repsbk
    /etc/yum.repos.d/epel.repo.rpmnew$ tar -cf repos.tar /etc/yum.repos.d -X exclude_file 
    tar: Removing leading `/' from member names

    调用gzip归档并压缩

      例1:将/etc/yum.repos.d目录下的文件归档并压缩为repos.tar.gz

    $ tar -czf repos.tar.gz /etc/yum.repos.d
    tar: Removing leading `/' from member names
    $ ls
    repos.tar.gz

      例2:解压并展开repos.tar.gz

    $ tar -xzf repos.tar.gz 
    
    $ ls
    etc  repos.tar.gz

    调用bzip2归档并压缩

      例1:将/etc/yum.repos.d目录下的文件归档并压缩为repos.tar.bz2

    $ tar -cjf repos.tar.bz2 /etc/yum.repos.d
    tar: Removing leading `/' from member names
    $ ls
    repos.tar.bz2

      例2:解压并展开repos.tar.bz2

    $ tar -xjf repos.tar.bz2 
    $ ls
    etc  repos.tar.bz2

    调用xz归档并压缩

      例1:将/etc/yum.repos.d目录下的文件归档并压缩为repos.tar.xz

    $ tar -cJf repos.tar.xz /etc/yum.repos.d
    tar: Removing leading `/' from member names
    $ ls
    repos.tar.xz

      例2:解压并展开repos.tar.xz

    $ tar -xJf repos.tar.xz 
    $ ls
    etc  repos.tar.xz

    7. rar

    压缩后缀: .rar

    安装:

    # 从https://www.rarlab.com上下载安装包
    $ wget https://www.rarlab.com/rar/rarlinux-x64-5.6.0.tar.gz
    
    # 解压安装
    $ tar -xf rarlinux-x64-5.6.0.tar.gz
    $ cd rar
    $ make

    语法: zip [options] file.zip file ... 

           unzip [options] file.zip  

    选项:

    # rar选项
    a:创建或添加文件至压缩包中。
    l:列出压缩包中的文件。
    v:列出压缩包中的文件,比l选项输出更多的信息。
    x:解压压缩包
    
    # unrar选项
    l:列出压缩包中的文件
    x: 解压压缩包

    压缩:

      例1:将/etc/yum.repos.d目录下的文件压缩为repos.rar

    $ rar a repos.rar /etc/yum.repos.d
    $ ls
    repos.rar

      例2:查看repos.rar压缩包中有哪些文件

    $ rar l repos.rar 
    
    RAR 5.40 beta 2   Copyright (c) 1993-2016 Alexander Roshal   30 May 2016
    Trial version             Type RAR -? for help
    
    Archive: repos.rar
    Details: RAR 4
    
     Attributes      Size     Date    Time   Name
    ----------- ---------  ---------- -----  ----
     -rw-r--r--       664  2018-06-27 13:02  etc/yum.repos.d/epel.repo
     -rw-r--r--      1331  2017-08-30 23:53  etc/yum.repos.d/repsbk/CentOS-Sources.repo
     -rw-r--r--       630  2017-08-30 23:53  etc/yum.repos.d/repsbk/CentOS-Media.repo
     -rw-r--r--       314  2017-08-30 23:53  etc/yum.repos.d/repsbk/CentOS-fasttrack.repo
     -rw-r--r--      3830  2017-08-30 23:53  etc/yum.repos.d/repsbk/CentOS-Vault.repo
     -rw-r--r--       649  2017-08-30 23:53  etc/yum.repos.d/repsbk/CentOS-Debuginfo.repo
     -rw-r--r--      1309  2017-08-30 23:53  etc/yum.repos.d/repsbk/CentOS-CR.repo
     -rw-r--r--      1664  2017-08-30 23:53  etc/yum.repos.d/repsbk/CentOS-Base.repo
     -rw-r--r--       951  2017-10-03 01:44  etc/yum.repos.d/epel.repo.rpmnew
     -rw-r--r--      2573  2018-04-18 04:16  etc/yum.repos.d/CentOS-Base.repo
     -rw-r--r--      1050  2017-10-03 01:44  etc/yum.repos.d/epel-testing.repo
     drwxr-xr-x         0  2018-04-18 04:16  etc/yum.repos.d/repsbk
     drwxr-xr-x         0  2018-08-13 16:20  etc/yum.repos.d
    ----------- ---------  ---------- -----  ----
                    14965                    13

    解压缩:

      例1:解压缩repos.rar文件到当前目录

    # 方法1:使用rar命令解压缩
    $ rar x repos.rar 
    
    # 方法2:使用unrar命令解压缩
    $ unrar x repos.rar

    8. 分割、合并文件

      有时一个文件过大(比如日志、压缩包等),不便于查看和在网络上传输,可以使用split将大文件分割成多个小文件。需要时再使用cat命令配合重定向合并文件。

    语法: split [OPTION]... [INPUT [PREFIX]] 

    选项:

    -l N | -N:分割后的每个文件行数。
    -b SIZE:分割后的每个文件大小,SIZE单位有K、M、G、T、P、E、Z、Y
    -d:分割文件名使用数字作为后缀
    -a: 指定分割文件名后缀的长度

    分割文件

      例1:将functions文件分割成多个小文件,每个小文件100行,小文件名以fun作为前缀。

    $ split -l 100 functions fun
    $ ls
    funaa  funab  funac  funad  funae  funaf  funag  functions

      例2:将etc.tar.gz分割成多个小文件,每个文件大小2M,小文件名以etc作为前缀,以数字作为后缀,并且后缀长度为3。

    $ split -b 2M -d -a 3 etc.tar.gz etc
    $ ls
    etc000  etc001  etc002  etc003  etc004  etc005  etc.tar.gz

    合并文件

      例1:将上面分割的小文件合并

    $ cat etc* > etc.tar.gz
    $ ls
    etc000  etc001  etc002  etc003  etc004  etc005  etc.tar.gz

    9.cpio

      cpio是类似tar一样的归档命令,cpio能够归档和展开cpio和tar格式的文件,cpio归档时不会去除绝对路径开头的 "/",当归档时使用了绝对路径,展开同样是绝对路径,有可能会覆盖当前文件,要特别小心。cpio通过标准输入获取要归档的文件,归档后默认将文件输出到标准输出。使用重定向保存归档文件。

    选项:

    -o:创建归档。
    -i:展开归档。
    -v:显示命令执行过程。
    -t:查看归档文件。
    -d:根据需要自动创建目录,比如使用-p选项复制目录时,使用该选项创建新目录。
    -H FROMAT:指定归档格式,此处可以指定tar格式。
    -F ARCHIVE:指定归档文件名。也可以使用重定向实现同样功能。
    -L:如果是符号链接,若链接的是文件,则使用文件替换链接,如果是目录,使用普通空文件替换链接目录。
    -m:创建归档时,保存原文件的修改时间。
    -p:复制文件。

       例1:使用cpio命令备份/etc/yum.repos.d目录,要求保存为cpio和tar两种格式。

    # 归档为cpio格式
    $ find /etc/yum.repos.d | cpio -o > repos.cpio
    
    # 归档为tar格式
    $ find /etc/yum.repos.d | cpio -H tar -o > repos.tar
    $ ls
    repos.cpio repos.tar

      例2:查看repos.cpio中有哪些文件

    $ cpio -t < repos.cpio 
    /etc/yum.repos.d
    /etc/yum.repos.d/epel.repo
    /etc/yum.repos.d/repsbk
    /etc/yum.repos.d/repsbk/CentOS-Sources.repo
    /etc/yum.repos.d/repsbk/CentOS-Media.repo
    /etc/yum.repos.d/repsbk/CentOS-fasttrack.repo
    /etc/yum.repos.d/repsbk/CentOS-Vault.repo
    /etc/yum.repos.d/repsbk/CentOS-Debuginfo.repo
    /etc/yum.repos.d/repsbk/CentOS-CR.repo
    /etc/yum.repos.d/repsbk/CentOS-Base.repo
    /etc/yum.repos.d/epel.repo.rpmnew
    /etc/yum.repos.d/CentOS-Base.repo
    /etc/yum.repos.d/epel-testing.repo
    
    [root@magedu ~]# tar -t < repos.tar 
    tar: Removing leading `/' from member names
    /etc/yum.repos.d/
    /etc/yum.repos.d/epel.repo
    /etc/yum.repos.d/repsbk/
    /etc/yum.repos.d/repsbk/CentOS-Sources.repo
    /etc/yum.repos.d/repsbk/CentOS-Media.repo
    /etc/yum.repos.d/repsbk/CentOS-fasttrack.repo
    /etc/yum.repos.d/repsbk/CentOS-Vault.repo
    /etc/yum.repos.d/repsbk/CentOS-Debuginfo.repo
    /etc/yum.repos.d/repsbk/CentOS-CR.repo
    /etc/yum.repos.d/repsbk/CentOS-Base.repo
    /etc/yum.repos.d/epel.repo.rpmnew
    /etc/yum.repos.d/CentOS-Base.repo
    /etc/yum.repos.d/epel-testing.repo

      例3:创建归档,使用-F选项取代重定向

    $ find /etc/sysconfig/network-scripts | cpio -o -F network.cpio

      例4:展开归档

    cpio -i < repos.cpio

      例5:将/etc/yum.repos.d目录复制到当前dir目录下

    # cpio复制时也是绝对路径,复制后dir目录下你会发现子目录是etc。
    $ find /etc/yum.repos.d/ | cpio -pmd  dir/
    Andraw|朱标
  • 相关阅读:
    LeetCode90.子集 ||
    Ubuntu下的Matlab安装
    FAQ
    青石板
    交叉熵损失函数
    tf常用函数
    激活函数
    SGD和GD的区别
    卷积神经网络
    Ubuntu安装Matlab2016b
  • 原文地址:https://www.cnblogs.com/zhubiao/p/9435275.html
Copyright © 2011-2022 走看看