使用tar归档

用tar对文件进行归档

其中-c表示创建文件,-f代表指定文件名,我们还能在最后匹配文件或文件夹

[root@mio-test ~]# tar -cf /tmp/tar1.tar *.txt

-t 查看tar包中的文件

[root@mio-test tmp]# tar -tf tar2.tar 
yum_save_tx-2014-08-07-09-47Hr4LpX.yumtx
yum_save_tx-2014-08-07-09-47Hr4LpX.yumtx

-r 向归档文件中添加文件

有时候,我们可能需要向已存在的归档文件中再添加一些参数

[root@mio-test ~]# tar -rf /tmp/tar1.tar php-5.3.29.tar.gz

-v 在终端输出信息

如果需要在归档或列出归档内容的过程中获得更多细节,可以使用-v选项

[root@mio-test ~]# tar -vrf /tmp/tar1.tar temp/ 
temp/
temp/img_8.jpg
temp/img_1.jpg
temp/img_3.jpg
temp/1.txt
temp/2.txt
temp/img_6.jpg
temp/1
temp/img_11.jpg
temp/img_2.jpg
temp/big_file
temp/text.dat
temp/img_6.jpg_copy
temp/img_4.jpg
temp/2
temp/img_9.jpg
temp/img_10.jpg
temp/aaa/
temp/img_7.jpg
temp/del.sh
temp/rename.sh
temp/img_5.jpg
temp/1v2000000
temp/sdsds6.jpg_copy

-x 从归档文件中提取文件

[root@mio-test tmp]# tar -xf tar1.tar

-C指定提取目录

[root@mio-test tmp]# tar -xf tar1.tar -C ./ttt/

提取部分文件

[root@mio-test tmp]# tar -xvf tar1.tar 1.txt -C ./ttt/
1.txt

-A 合并两个tar文件

将tar2.tar合并至tar2.tar中

[root@mio-test tmp]# tar -Af tar1.tar tar2.tar

追加有更新的文件至tar

添加选项可以将指定的任意文件加入到归档文件中,如果同名的文件已经存在,那么结果就是在归档文件中包含两个同名的文件,我们可以用更新选项 -u,这样文件只有比tar包中的文件更新时,才会覆盖tar包中的旧文件

[root@mio-test tmp]# tar -uvf tar2.tar yum_save_tx-2014-08-07-09-47Hr4LpX.yumtx 
[root@mio-test tmp]# echo '111' > yum_save_tx-2014-08-07-09-47Hr4LpX.yumtx 
[root@mio-test tmp]# tar -uvf tar2.tar yum_save_tx-2014-08-07-09-47Hr4LpX.yumtx 
yum_save_tx-2014-08-07-09-47Hr4LpX.yumtx

-d 比较归档文件与文件系统中的内容

有时候,我们需要知道归档文件中的文件与文件系统中同名文件是否有差别,对于我们而言还是有帮助的,选项-d可以打印出两者之间的差别

[root@mio-test tmp]# tar -df tar2.tar yum_save_tx-2014-08-07-09-47Hr4LpX.yumtx 
yum_save_tx-2014-08-07-09-47Hr4LpX.yumtx: Mod time differs
yum_save_tx-2014-08-07-09-47Hr4LpX.yumtx: Size differs

—delete 删除归档中的文件

[root@mio-test tmp]# tar -vf tar2.tar --delete yum_save_tx-2014-08-07-09-47Hr4LpX.yumtx

压缩tar归档文件

tar命令只能用来对文件进行归档,他并不具备压缩功能,出于这个原因,多数用户在使用归档文件时都会对文件采用某种形式的压缩,这样就能够大量降低文件的大小,归档文件通常被压缩成下列格式之一

tar.gz
tar.bz2
tar.lzma
tar.lzo

不同的tar选项可以用来指定不同的压缩格式

-j 指定bunzip2格式

-z 指定gzip格式

—lzma指定lzma格式

将文件压缩为gzip格式

[root@mio-test tmp]# tar -zcvf 13.tar 1.txt

—totals 打印出tar包占用文件大小

[root@mio-test tmp]# tar -zcvf 13.tar 1.txt --totals
1.txt
Total bytes written: 10240 (10KiB, 14MiB/s)