tar命令
tar命令用于将多个文件合成1个文件,wiki中把这个命令和cpio、shar等一起叫做archive文件,个人理解是归档,合成一个文件,后就可以用gzip、bz2、xz等工具进行压缩,同时也能方便在各个计算机间传输,有点类似windows下共享的zip文件。
wiki上这个图比较形象,tar把零散的文件合拢,gzip把合拢的文件压缩。
一、 命令语法
tar [选项...] [FILE]...
二、 选项详解
使用 tar --help命令能够阅读tar命令的详细用法解析。
示例
tar -cf archive.tar foo bar # 从文件 foo 和 bar 创建归档文件archive.tar。
tar -tvf archive.tar # 详细列举归档文件 archive.tar中的所有文件。
tar -xf archive.tar # 展开归档文件 archive.tar中的所有文件。
选项
1、 主要选项:
-A, --catenate, --concatenate 追加 tar 文件至归档
-c, --create 创建一个新归档
-d, --diff, --compare 找出归档和文件系统的差异
--delete 从归档(非磁带!)中删除
-r, --append 追加文件至归档结尾
-t, --list 列出归档内容
--test-label 测试归档卷标并退出
-u, --update 仅追加比归档中副本更新的文件
-x, --extract, --get 从归档中解出文件
2、压缩选项
-a, --auto-compress 使用归档后缀名来决定压缩程序
-I, --use-compress-program=PROG ,通过 PROG 过滤(必须是能接受 -d 选项的程序)
-j, --bzip2 通过 bzip2 压缩归档
-J, --xz 通过 xz 压缩归档
-z, --gzip, --gunzip, --ungzip 通过 gzip 压缩归档
-Z, --compress, --uncompress 通过 compress 压缩归档
3、辅助选项
-v, --verbose 详细地列出处理的文件
-f, --file=ARCHIVE 使用归档文件或 ARCHIVE 设备,*该选项后必须接打包的.tar**
三、使用示例
做试验的文件夹目录结构
1、将bdir 打包成 bdir.tar
命令:tar -cvf bdir.tar bdir
打包之前是0为什么打包之后是12k,需要研究,可能不是单纯的合并。
2、把1.txt加入bdir.tar
命令:tar -rvf bdir.tar 1.txt
3、打包adir、bdir到bdir.tar,但不打包其中的a.txt文件
命令:tar -cvf bdir.tar --exclude bdir/a.txt adir bdir
命令的语序为打包到哪个文件,哪些东西不要,描述总体需要加进去的文件。
4、查看bdir.tar中的文件
命令:tar -tf bdir.tar,该命令同时可以查看使用-z,-j,-J打包压缩过的文件包中的内容
注意如果包中文件过多,可在命令后加|less分屏显示
命令:tar -tf bdir.tar|less
5、把bdir.tar解压到当前目录下
命令:tar -xvf bdir.tar
注意,解包操作会覆盖原始文件并且不会有提示。
6、将1.txt、adir、bdir打包再用gzip压缩(用其他压缩方式只需替换其中的z为j或J)
命令:tar -czvf bdir.tar.gz 1.txt adir bdir
查看其中的内容:
命令:tar -tf bdir.tar.gz
解压包
命令:tar -xzvf bdir.tar.gz
补充知识:单独解压出包中个别文件
命令:```
cd /tmp
tar -xzvf /tarlearning/bdir.tar.gz bdir/a.txt
![](https://s4.51cto.com/images/blog/201801/07/6e6a85f831ce9ebf6d91432ff14fc62c.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)