Linux之打包/解包、压缩/解压

ProjectDaedalus

共 2898字,需浏览 6分钟

 ·

2023-08-10 10:43

里介绍Linux下如何对文件进行打包/解包、压缩/解压
abstract.jpg

压缩/解压:gzip命令

Linux中压缩、解压文件的工具有很多,比如:compress、gzip、bzip2、xz等。这里介绍高频使用的gzip命令。gzip工具特征在于:只能压缩文件,不能压缩目录。gzip压缩后默认在原文件名称后追加 .gz 后缀

# 压缩若干个指定的文件
gzip file1 file2 ...

# 压缩当前目录下的所有文件,其中通配符 * 代表当前目录下所有文件
gzip *

# 压缩当前目录下(含子目录下)的所有文件,其中通配符 * 代表当前目录下所有文件
gzip -r *
figure 1.jpg

解压操作类似,既可以使用gunzi命令。也可以继续使用gzip命令,只需添加 -d 选项即可

# 解压当前目录下(含子目录下)的所有文件,其中通配符 * 代表当前目录下所有文件
gzip -dr *
figure 2.jpg

打包/解包:tar命令

通过对比Linux、Win下的压缩操作表现来看,似乎发现一个问题了。Win下可以将多个文件压缩成一个文件,而在Linux中gzip命令则是一个一个压缩的。为此在Linux下需要先将多个文件归档到一个文件当中,即所谓的打包(归档文件的后缀习惯上用 .tar )。通常使用tar命令即可。事实上该tar命令选项较为复杂,而且很多选项基本很少用到。故这里只介绍常见的选项

  • -c :创建tar归档文件,即所谓的打包
  • -v :命令执行过程中显示正在处理的文件名
  • -f :用以指定操作的tar归档文件
  • -x :从tar归档文件中提取文件,即所谓的解包
  • -t :列出以查看tar归档文件中的内容,但不提取
  • -C :切换到指定目录
  • -z :调用gzip命令压缩/解压文件
  • -Z :调用compress命令压缩/解压文件
  • -j :调用bzip2命令压缩/解压文件
  • -J :调用xz命令压缩/解压文件

1. 打包命令如下所示

# 将指定文件打包到归档文件 file1.tar 中
tar -cvf file1.tar file1 file2 dir1/ dir2/ ...

# 将当前目录下(含子目录下)的所有文件打包到归档文件 file1.tar 中,其中通配符 * 代表当前目录下所有文件
tar -cvf file1.tar *
figure 3.jpg

2. 查看归档文件中的内容

# 查看归档文件 file1.tar 中的内容
tar -tf file1.tar
figure 4.jpg

3. 解包命令如下所示

# 对指定tar归档文件在当前工作目录下进行解包
tar -xvf temp/file1.tar 

# 对指定tar归档文件在指定目录下进行解包
tar -xvf temp/file1.tar -C ./temp2/
figure 5.jpg

组合拳

故在Linux当中对多文件进行压缩前,一般都需要先打包成tar归档文件;而在解压后,通常得到也是一个tar归档文件,还需要再次解包。为此,tar命令中直接提供了 compress-z-j-J 等选项,以便直接调用compress、gzip、bzip2、xz等命令进行压缩/解压。故如果期望对多文件进行压缩,直接利用tar命令即可一次性搞定。解压文件同理。具体命令如下,这里以使用gzip压缩为例,如果期望使用其他压缩命令,只需将下述命令中的 -z 选项 替换为其它压缩软件对应的选项即可

# 压缩文件命令组合拳: 对指定文件打包并使用gzip压缩
tar -zcvf foo.tar.gz file1 file2 dir1 dir2 ...

# 解压文件命令组合拳:对压缩文件,先使用gzip解压,再解包
tar -zxvf foo.tar.gz

压缩示例

figure 6.jpg

解压示例

figure 7.jpg

这里强调下在解压的时候,我们首先需要知道该压缩文件是用什么工具压缩的。一方面,我们可以通过文件后缀名来判定;另一方面,我们还可以使用file命令来判定

  • 文件后缀名 .tar.gz.tgz 习惯上代表该tar归档文件使用gzip命令进行压缩
  • 文件后缀名 .tar.bz2 习惯上代表该tar归档文件使用bzip2命令进行压缩
  • 文件后缀名 .tar.xz 习惯上代表该tar归档文件使用xz命令进行压缩
figure 8.jpg

参考文献

  1. Linux命令行与shell脚本编程大全·第4版 Richard Blum、Christine Bresnahan著


浏览 251
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报