tar可以把目录打包成一个文件,好处是把所有文件整合成一个大文件整体,方便拷贝或者移动。可以打包目录。
但是不压缩,即文件大小不会改变,之前是多大,打包后的文件会略小一点,考虑到并不是每个文件都占满了块。如果是打包非空目录,则打包后的文件,会略微大一点,因为tar本身需要一些文件(类比1T的移动硬盘,实际上的大小不到1T,需要一些空间来写移动硬盘本身的数据)。
语法:tar [-参数] filename
常用:#tar -cvf 压缩后文件名 需要压缩的文件1 需要压缩的文件2
-z 同时用gzip压缩
-j 同时用bzip2压缩
-x 解包或者解压缩
-t 查看tar包里面的文件
-c 建立一个tar包或者压缩文件包
-C 指定解压后的目录
-v 可视化
-f 压缩时跟“-f 文件名”,表示压缩后的文件名为“filename”,解压时跟“-f filename”,表示解压filename。
如果是多个参数组合的情况下带有“-f”,把“-f”放到最后。
--exclude filename 打包或压缩时,排除filename文件。
-p(小写) 使用原文件属性,压缩前什么属性,压缩后还什么属性
-P(大写) 可以使用绝对路径
tar打包后,原文件不会消失,依旧存在。
#tar -cvf test.tar --exclude 5.txt test 【压缩除test5之外的所有文件及目录】
#tar -cvf test1.tar --exclude 3 1/2 【压缩除目录3之外的所有文件及目录】【
若要过滤多个文件或目录,需要每个文件前面添加 --exclude ,方便起见可使用双引号 --exclude "*dir" --exlude "*.txt" --exclude "*"】
[root@Sleop tmp]# tree 1
1
├── 1.txt
└── 2
├── 2a.txt
├── 2b.txt
├── 2.txt
└── 3
【上述命令中,需要排除的选项,无需使用绝对路径,只需输入文件名即可】
├── 3.txt
└── 4
└── 5
└── 6
#tar -cvf test2.tar 1 1.txt install.log.syslog 【文件名后面跟多个文件,可以一次性打包很多文件及目录,
并没有
压缩】
#tar -xvf test2.tar 【解
包后,如果文件名重复,会直接覆盖】
#tar -C /tmp/1 -xvf test.tar 【指定解包到/tmp/1目录下】
#tar -xvf test.tar -C /tmp/1 【指定解包到/tmp/1目录下】
转载请注明原文地址: https://ju.6miu.com/read-17317.html