Linux的使用及常用命令-2

222 阅读4分钟

文件压缩/解压

相信大家在日常的Linux操作中,一定遇到过各种各样的压缩包,在Windows中,一般常见的格式为ziprar等,但Linux中就有很多压缩格式,例如tar.gzgztar.bz2bz2xz等等,下面我们就一起来学习这些文件是怎么压缩和解压的吧!

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

总结

不同文件类型的常见解压方式

  1. *.tartar –xvf 解压
  2. *.gzgzip -d或者gunzip 解压
  3. *.tar.gz*.tgztar –zxvf 解压
  4. *.bz2bzip2 -d或者用bunzip2 解压
  5. *.tar.bz2tar –jxvf 解压
  6. *.Zuncompress 解压
  7. *.tar.Ztar –Zxvf 解压
  8. *.rarunrar x解压
  9. *.zipunzip 解压

常见解压/压缩命令

.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