文件压缩/解压
相信大家在日常的
Linux操作中,一定遇到过各种各样的压缩包,在Windows中,一般常见的格式为zip,rar等,但Linux中就有很多压缩格式,例如tar.gz,gz,tar.bz2,bz2,xz等等,下面我们就一起来学习这些文件是怎么压缩和解压的吧!
1. tar命令
tar命令主要用于打包与解打包,但也可通过一些参数实现打包后压缩,扩展名一般为.tar格式
tar命令参数解析(-可省略) | tar命令参数 | 含义 | | :---: | :---: | |-c| 将多个文件或目录进行打包 | |-v| 显示打包文件过程 | |-f| 后接包的文件名 | |-x| 对 tar 包做解打包操作 | |-t| 查看 tar 包中的文件 | |-C| 后接解打包位置 | |-z| 压缩和解压缩 ".tar.gz" 格式 | |-j| 压缩和解压缩 ".tar.bz2"格式 | |-J| 压缩和解压缩 ".tar.xz"格式 | |-O| 将文件解压到标准输出 |
# 对文件和目录进行打包压缩或者反方向操作
tar <参数> <包名> [<文件>]
# 把/etc目录下所有以.conf结尾的文件打包成一个文件abc.tar,这个文件就在当前文件下
tar -cvf abc.tar /etc/*.conf
# 把abc.tar包中的文件解压出来并放到当前目录下
tar -xvf abc.tar
# 显示包中的文件
tar -tvf file.tar
# 打包目录./123,然后压缩包(gzip格式)
tar -zcvf file.tar.gz ./123
# 解压并解包(gzip格式),解压并解包后的文件放在当前目录下 **注:解压任何压缩格式的文件,都可以用-xf参数
tar -xf(-zxvf) file.tar.gz
# 对目录/etc打包并压缩成file.tar.bz2(bzip2格式)
tar -jcvf file.tar.bz2 /etc/
# 解压并解包/tmp/etc.tar.bz2(bzip2格式)
tar -jxvf /tmp/etc.tar.bz2
# 打包并以xz工具压缩(xz压缩工具压缩率最高)
tar -Jcvf etc.tar.xz
注意区分打包与压缩
打包是指将一大堆文件或目录什么的变成一个总的文件
压缩是将一个大的文件通过一些压缩算法变成一个小文件
2. gzip命令
gzip命令一般用来对文件进行压缩和解压缩,通过此命令压缩得到的新文件,其扩展名通常标记为.gz
gzip命令参数解析 | gzip命令参数 | 含义 | | :---: | :---: | |-c| 将压缩数据输出到标准输出中,并保留源文件 | |-d| 对压缩文件进行解压缩 | |-v| 对于每个压缩和解压缩的文件,显示相应的文件名和压缩比 | |-l| 对每一个压缩文件,显示压缩文件的大小;未压缩文件的大小;压缩比;未压缩文件的名称 |
# 对文件进行压缩或解压缩
gzip <选项> 源文件
# 压缩1.txt文件,压缩后的文件名是1.txt.gz
gzip 1.txt
# 解压1.txt.gz文件
gzip -d 1.txt.gz 或 gunzip 1.txt.gz
在
Linux中,打包和压缩是分开处理的。而gzip命令只会压缩,不能打包,如果对目录进行压缩,会出现只把目录下的文件进行压缩的情况
3. bzip2命令
bzip2命令只能对文件进行压缩或解压缩,对于目录只能压缩或解压缩该目录及子目录下的所有文件。当执行压缩任务完成后,会生成一个以.bz2为后缀的压缩包
bzip2命令参数解析 | bzip2命令参数 | 含义 | | :---: | :---: | |-k| 在压缩或解压缩任务完成后,保留原始文件 | |-d| 对压缩文件进行解压缩 | |-f| 在压缩或解压缩时,若输出文件与现有文件同名,默认不会覆盖现有文件,若使用此选项,则会强制覆盖现有文件 | |-v| 压缩或解压缩文件时,显示详细信息 |
# 对文件进行压缩或解压缩
bzip2 <选项> 源文件
# 压缩1.txt文件,压缩后的文件名是1.txt.bz2
bzip2 1.txt
# 解压1.txt.bz2文件
bzip2 -d 1.txt.bz2 或 bunzip2 1.txt.bz2
4. xz命令
目前
xz压缩率是最好的
# 对文件进行压缩或解压缩
xz <选项> 源文件
# 压缩1.txt文件,压缩后的文件名是1.txt.xz
xz 1.txt
# 解压1.txt.xz文件
xz -d 1.txt.xz
总结
不同文件类型的常见解压方式
*.tar用tar –xvf解压*.gz用gzip -d或者gunzip解压*.tar.gz和*.tgz用tar –zxvf解压*.bz2用bzip2 -d或者用bunzip2解压*.tar.bz2用tar –jxvf解压*.Z用uncompress解压*.tar.Z用tar –Zxvf解压*.rar用unrar x解压*.zip用unzip解压
常见解压/压缩命令
.tar
解包:tar xvf FileName.tar
打包:tar cvf FileName.tar DirName
注:tar是打包,不是压缩!
.gz
解压1:gunzip FileName.gz
解压2:gzip -d FileName.gz
压缩:gzip FileName
.tar.gz 和 .tgz
解压:tar zxvf FileName.tar.gz
压缩:tar zcvf FileName.tar.gz DirName
.bz2
解压1:bzip2 -d FileName.bz2
解压2:bunzip2 FileName.bz2
压缩: bzip2 -z FileName
.tar.bz2
解压:tar jxvf FileName.tar.bz2
压缩:tar jcvf FileName.tar.bz2 DirName
.bz
解压1:bzip2 -d FileName.bz
解压2:bunzip2 FileName.bz
压缩:未知
.tar.bz
解压:tar jxvf FileName.tar.bz
压缩:未知
.Z
解压:uncompress FileName.Z
压缩:compress FileName
.tar.Z
解压:tar Zxvf FileName.tar.Z
压缩:tar Zcvf FileName.tar.Z DirName
.zip
解压:unzip FileName.zip
压缩:zip FileName.zip DirName
.rar
解压:rar x FileName.rar
压缩:rar a FileName.rar DirName