一、命令介绍
Unix和类Unix系统上的压缩打包工具,可以将多个文件合并为一个文件,打包后的文件后缀亦为“tar”。tar文件格式已经成为POSIX标准,最初是POSIX.1-1988,当前是POSIX.1-2001。本程序最初的设计目的是将文件备份到磁带上(tape archive),因而得名tar。
tar代表未压缩的tar文件。已压缩的tar文件则附加压缩文件的扩展名,如经过gzip压缩后的tar文件,扩展名为“.tar.gz”。由于受到DOS8.3文件名格式的限制,常使用下列缩写:
- .tgz等价于.tar.gz
- .tbz与tb2等价于.tar.bz2
- .taz等价于.tar.Z
- .tlz等价于.tar.lzma
- .txz等价于.tar.xz
二、使用示例
1、打包多个文件和目录
[root@test1 wuhs]# tar -cvf test.tar test test.zip wuhs.zip
test/
test/hello.txt
test/hello.txt.zip
test.zip
wuhs.zip
2、将文件追加到档案文件末尾
[root@test1 wuhs]# tar -r hi.txt -f test.tar
3、将文件释放到指定目录
[root@test1 wuhs]# mkdir abc
[root@test1 wuhs]# tar -xvf test.tar -C abc
test/
test/hello.txt
test/hello.txt.zip
test.zip
wuhs.zip
hi.txt
4、打包并使用gzip压缩多个文件或目录
[root@test1 wuhs]# [root@test1 wuhs]# tar -zcvf test.tar.gz test test.zip wuhs.zip
test/
test/hello.txt
test/hello.txt.zip
test.zip
wuhs.zip
5、使用gzip解压并释放档案文件到当前目录
[root@test1 wuhs]# tar -zxvf test.tar.gz
test/
test/hello.txt
test/hello.txt.zip
test.zip
wuhs.zip
6、打包归档时排除指定目录或文件
[root@test1 wuhs]# tar -zcvf wuhs.tar.gz /home/wuhs/ --exclude=test*
7、列出打包归档的文件
[root@test1 wuhs]# tar -tzvf test.tar.gz
drwxr-xr-x root/root 0 2021-02-06 19:55 test/
-rw-r–r-- root/root 15 2021-02-06 19:16 test/hello.txt
-rw-r–r-- root/root 183 2021-02-06 19:18 test/hello.txt.zip
-rw-r–r-- root/root 678 2021-02-06 20:01 test.zip
-rw-r–r-- root/root 2140 2021-02-06 19:58 wuhs.zip
8、归档隐藏文件夹
tar命令如果是tar包当前目录下的所有文件,默认是只将显示文件归档为一个文件,如果需要归档当前目录下的所有文件,包括显示和隐藏文件,我们可以加上.[!.]* 参数实现。当然如果是回到上一次显示目录下执行tar操作则会归档所有文件,即显示文件夹下的所有文件都会归档处理。
[root@s152 test]# tar -cvf 1.tar.gz *
tar: 1.tar.gz: 文件是归档文件;未输出
a.txt
bb.txt
b.txt
b.txt.bak
c.txt
fwarp.txt
txt.tar.gz
[root@s152 test]# tar -cvf 1.tar.gz * .[!.]*
tar: 1.tar.gz: 文件是归档文件;未输出
a.txt
bb.txt
b.txt
b.txt.bak
c.txt
fwarp.txt
txt.tar.gz
.aa/
.aa/a.txt
.aa.txt
三、参数说明
1、主选项
- -c 创建新的档案文件。如果用户想备份一个目录或是一些文件,就要选择这个选项。
- -r 把要存档的文件追加到档案文件的末尾。例如用户已经做好备份文件,又发现还有一个目录或是一些文件忘记备份了,这时可以使用该选项,将忘记的目录或文件追加到备份文件中。
- -t 列出档案文件的内容,查看已经备份了哪些文件。
- -u 更新文件。就是说,用新增的文件取代原备份文件,如果在备份文件中找不到要更新的文件,则把它追加到备份文件的最后。
- -x 从档案文件中释放文件。
2、辅助选项:
- -b 该选项是为磁带机设定的,其后跟一数字,用来说明区块的大小,系统预设值为20(20×512 bytes)。
- -f 使用档案文件或设备,这个选项通常是必选的。
- -k 保存已经存在的文件。例如把某个文件还原,在还原的过程中遇到相同的文件,不会进行覆盖。
- -m 在还原文件时,把所有文件的修改时间设定为。
- -M 创建多卷的档案文件,以便在几个磁盘中存放。
- -v 详细报告tar处理的文件信息。如无此选项,tar不报告文件信息。
- -w 每一步都要求确认。
- -j 代表使用‘bzip2’程序进行文件的压缩
- -J代表调用“xz”程序进行文件的压缩(但在RHEL5的1.53上面无法使用,在RHEL6的2.23上面可以使用)
- -z 用gzip来压缩/解压缩文件,加上该选项后可以将档案文件进行压缩,但还原时也一定要使用该选项进行解压缩。
- -A,–catenate,–concatenate
将一存档与已有的存档合并 - -d,–diff,–compare
比较存档与当前文件的不同之处 - –delete
从存档中删除
其他参数 - –atime-preserve
不改变转储文件的存取时间 - -b,–block-size N
指定块大小为 Nx512 字节(缺省时 N=20) - -B,–read-full-blocks
读取时重组块(???!!!) - -C,–directory DIR
转到指定的目录 - –checkpoint
读取存档时显示目录名 - -f,–file [HOSTNAME:]F
指定存档或设备 (缺省为 /dev/rmt0) - –force-local
强制使用本地存档,即使存在克隆 - -F,–info-script F --new-volume-script F
在每个磁盘结尾使用脚本 F (隐含 -M) - -G,–incremental
建立老 GNU 格式的备份 - -g,–listed-incremental F
建立新 GNU 格式的备份 - -h,–dereference
不转储动态链接,转储动态链接指向的文件。 - -i,–ignore-zeros
忽略存档中的 0 字节块(通常意味着文件结束) - –ignore-failed-read
当遇上不可读文件时不要以非零值退出 - -k,–keep-old-files
保存现有文件;从存档中展开时不进行覆盖 - -K,–starting-file F
从存档文件 F 开始 - -l,–one-file-system
在本地文件系统中创建存档 - -L,–tape-length N
在写入 N*1024 个字节后暂停,等待更换磁盘 - -m,–modification-time
当从一个档案中恢复文件时,不使用新的时间标签 - -M,–multi-volume
建立多卷存档,以便在几个磁盘中存放 - -N,–after-date DATE,–newer DATE
仅存储时间较新的文件 - -o,–old-archive,–portability
以 V7 格式存档,不用 ANSI 格式 - -O,–to-stdout
将文件展开到标准输出 - -p,–same-permissions,–preserve-permissions
展开所有保护信息 - -P,–absolute-paths
不要从文件名中去除 ‘/’ - –preserve
like -p -s
与 -p -s 相似 - -R,–record-number
显示信息时同时显示存档中的记录数 - –remove-files
建立存档后删除源文件 - -s,–same-order,–preserve-order
为解压至匹配归档排序名称 - –same-owner
展开以后使所有文件属于同一所有者 - -S,–sparse
高效处理 - -T,–files-from F
从文件中得到要展开或要创建的文件名 - –null
读取空结束的文件名,使 -C 失效 - –totals
显示用 --create 参数写入的总字节数 - -v,–verbose
详细显示处理的文件 - -V,–label NAME
为存档指定卷标 - –version
显示 tar 程序的版本号 - -w,–interactive,–confirmation
每个操作都要求确认 - -W,–verify
写入存档后进行校验 - –exclude FILE
不把指定文件包含在内 - -X,–exclude-from FILE
从指定文件中读入不想包含的文件的列表 - -y,–bzip2,–bunzip2
用 bzip2 对存档压缩或解压 - -Z,–compress,–uncompress
用 compress 对存档压缩或解压 - -z,–gzip,–ungzip
用 gzip 对存档压缩或解压 - –use-compress-program PROG
用 PROG 对存档压缩或解压 ( PROG 需能接受 -d 参数) - –block-compress
为便于磁盘存储,按块记录存档 - -[0-7][lmh]
指定驱动器和密度[低中高]