tar.gz/xz/bz2 怎么解压
tar 用法:tar最初是用来在磁带机上打包,现在tar可以打包任何文件,将多个文件和目录打包成一个文件,同时还支持 xz/bzip2/gzip 压缩,单独 tar 不具有压缩的功能,在打包的同时还想压缩,必须配合压缩参数使用,此外 tar 的操作都是保留原文件的
tar [参数][选项]
1. -v 详细显示处理的文件 ,显示处理的文件名称2. -f 后面接要处理的文件或者目录,即打包和解包的档案名 该选项常规情况下为必选项,建议单独写该参数
3. -c 创建新的包文件,保留原文件
4. -x 解包或者解压缩,解压缩配合 -z j等选项
5. -z 对 gzip 压缩的包进行打包或解压展开,文件名为 *.tar.gz
6. -J 对 xz 压缩的包进行打包或解压展开,文件名为 *.tar.xz
7. -j 对 bzip2 压缩的包进行打包或解压展开,问件名为 *.tar.bz2
8. -Z 对compress 压缩的包进行打包或解压展开,文件名 *.tar.Z 由于compress 效率不高,现在基本上已经丢弃不用啦
9. -t 显示包文件中的文件名称
10. -r 将新的文件添加到已经打好的包中去,保留原文件
11. -p 保留原来文件的属性和权限
12 -P 保留文件中的绝对路径
13 -C 指定解包到特定的目录
14 -A 合并多个存档包
15 --remove-files 打包后删除源文件
说明:
其中 -f 选项指定要打包或解包的目标文件tar,解包缩必须选上,打包如果缺省,系统默认输出到标准输出,即屏幕上,如果不是纯文本文件就可能会出现那乱码,或者意想不到的错误,打包如果不指定 -f 选项,也可以用文件流重重定向 >
如:将 testa testb 文件打包成 test.tar
tar -cv testa testb > test.tar
并且 -f 选项后面必须紧跟文件,比 打包testa testb必须写成 tar -cvf test.tar testa testb 不能写成 tar -cfv test.tar testa testb ,但是可以写成 tar -cvf test.tar testa testb 因为参数可以合并,只是建议将 -f 选项分开写,只要保证 -f 选项后面紧跟 文件就可以啦,因为linux中文件属性与后缀名无关,但是便于我们区分,用 *.tar , *gz.tar 等来区分。test.tar 文件并不需要我们事先创建,tar在打包时会自动创建该文件
1.打包多个文件 tar [选项参数] 目标文件 被打包文件
tar -cv -f test.tar testa testb #打包当前文件到当前目录,讲 testa testb 打包到当前文件夹中 test.tar
tar -cv -f /tmp/test.tar testa testb #将当前文件夹中的 testa testb打包到指定文件夹 /tmp/test.tar2.
2. 解压1中的包 tar [选项参数] 被解压的包
tar -xv -f test.tar #解压到当前目录
tar -xv -f test.tar -C /tmp/mydir #将test.tar 解包到 /tmp/mydir 目录下
3. 查看 tar 包中文件名
tar -tv -f test.tar #查看test.tar 中的所有文件名
tar -tzv -f test.tar.gz #查看 test.tar.gz 中所有文件名
4. 打包同时并用 xz bzip2 gzip 压缩成 *.tar.xz *.tar.bz2 *.tar.gz,如果解压,将 c 换成 x 即可
tar -cJv -f test.tar.xz testa testb #将 testa testb 打包后用 xz 压缩成 test.tar.xz
tar -xJv -f test.tar.xz #解压 test.tar.xz 当当前目录
tar -cjv -f test.tar.bz2 testa testb #将 testa testb 打包后用 bzip2 压缩成 teste.tar.bz2
tar -xjv -f test.tar.bz2 #将 test.tar.bz2 解压到当前目录
tar -czv -f test.tar.gz testa testb #将 testa testb 打包后用 gzip 压缩成 test.tar.gz
tar -xzv -f test.tar.gz #将 test.tar.gz 解压到当前目录
tar -cZv -f test.tar.Z testa testb #将 testa testb 打包后用 compress 压缩 test.tar.Z
tar -xZv -f test.tar.Z #将 test.tar.Z 解压到当前目录
5. 向已有的包添加新的文件
tar -rv -f test.tar testc #将testc添加到test.tar 包中
6. 合并多个包,合并后的包就是第一个包
tar -vA -f test1.tar test2.tar test3.tar #将 test1.tar test2.tar test3.tar 合并到第一包 test1.tar 此时test1.tar中包含 test1 test2 test3 这三个文件
7. 打包后删除原文件
tar -cv --remone-files -f test.tar testa testb # 将testa testb 打包成test.tar 后 testa testb文件将删除不存在