linux笔记 文件的压缩与解压缩gzip、bzip2、xz、zip&unzip、tar打包、tar打包和压缩并用
压缩文件意义节省网络传输带宽,降低磁盘使用率。但会使用一定的cpu。
1、gzip
不支持压缩目录,gzip后直接跟文件名,在当前目录下压缩时,原文件会消失。
#gzip filename
指定压缩目录:#gzip -c 123.txt > /tmp/123.txt.gz 将当前目录下123.txt文件压缩到tmp目录下名字为123.txt.gz
解压缩:#gzip -d file.gz
#zcat file.gz 查看.gz文件内容
2、bzip2
不支持压缩目录,bzip2后可直接跟文件名也可跟-z filename,在当前目录下压缩时,原文件会消失。
#bzip2 filename
解压缩:
#bzip2 -d file.bizp2
#bzcat file.bz2 查看.bz2文件内容
3、xz
不支持压缩目录,xz后可直接跟文件名也可跟-z filename,在当前目录下压缩时,原文件会消失。
语法:xz -z filename
-d filename 解压缩
#xzcat file.xz 查看.xz的文本内容。
指定解压缩文件的解压路径,比如xz压缩文件为 1.txt.xz
#xz -d 1.txt.xz -c > /tmp/1.txt
4、zip&unzip
zip后跟文件压缩后文件名 然后跟要压缩的文件,在当前目录下压缩时,原文件会消失,支持压缩目录但要加-r
压缩:#zip 1.txt.zip 1.txt
指定压缩路径:
#zip /tmp/a/1.txt.zip /tmp/1.txt 将/tmp/1.txt压缩到/tmp/a/下文字为1.txt.zip
压缩目录:#zip -r yasuo.zip yasuo/
解压:#unzip 1.txt.zip
#unzip -l file.zip 列出file.zip文件列表
解压到指定目录:#unzip -d /home/ 1.txt.zip
5、tar打包
#tar -cvf file.tar file1 file2 dir1...
#tar -tf file.tar 查看压缩包文件列表
解压:#tar -xvf 1.tar
指定路径解压:#tar -C /yasuo/hello -xvf 1.tar或#tar -xvf 1.tar -C /yasuo/hello
6、tar打包和压缩并用
tar支持gzip bzip2 xz格式压缩
gzip格式压缩
#tar -zcvf -z表示使用gzip压缩,-tf 查看包或压缩包的文件列表
如:# tar -zcvf 1.tar.gz 111 111.zip 1.txt
# tar -tf 1.tar.gz
#tar -zxvf 解压.tar.gz文件
如:tar -zxvf 1.tar.gz
指定目录解压:#tar -zxvf 1.tar.gz -C nihao/
#tar -zxvf 1.tar.gz
bzip2格式压缩
#tar -jcvf file.tar.bzip2 fil1 file2 dir1...
如:[root@zekLinux hello]# tar -jcvf 1.tar.bzip2 nihao/ yasuo
解压:#tar -jxvf 1.tar.bzip2
xz格式压缩:
#tar -Jcvf file.tar.xz file1 file2 dir1...
解压:tar -Jxvf file.tar.xz
--exclude 打包或压缩时过滤某些内容
如:#tar --exclude 12.txt --exclude aminglinux -cvf 111.tar 111
#tar --exclude 12.txt -cvf 111.tar 111
若想在 1.tar 中追加一个新的文件1.txt前提是1.tar时打包来的,压缩的不支持。
tar -rf 1.tar 1.txt
[root@zekLinux hello]# tar -rf 1.tar 2.txt
[root@zekLinux hello]# tar -tf 1.tar
111/
1.txt
1.txt
2.txt