1. ncompress
compress命令是一个相当古老的 unix 档案压缩指令,压缩后的文件会加上一个 .Z 的后缀名,默认不会保留源文件。compress只能对文件进行压缩,若要压缩目录,先使用tar命令归档为一个文件后,再进行压缩,此命令已经很少被使用。
压缩后缀: .Z
安装: sudo yum install
语法: 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命令对文本文件有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 [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中的所有文件进行归档。
归档和展开
/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
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
/etc/yum.repos.d/epel-testing.repo
$ 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
选项:
-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/