在学习Linux上的文件打包与解压缩之前,有必要学习一下常见的文件打包格式。Windows上常见的文件打包格式有zip、rar、7z三种压缩文件格式,而Linux上除了以上三种类型外,还有gz、xz、bz2、tar、tar.gz、tar.xz、tar.bz2,简单介绍如下表:
| 格式 | 说明 |
|---|---|
zip |
zip程序压缩的文件 |
rar |
rar程序压缩的文件 |
7z |
7zip程序压缩的文件 |
gz |
gzip程序(GUN zip)压缩的文件 |
xz |
zx程序压缩的文件 |
bz2 |
bzip2程序压缩的文件 |
tar |
tar打包,未压缩的文件 |
tar.gz |
tar打包,gzip程序压缩的文件 |
tar.zx |
tar打包,zx程序压缩的文件 |
tar.bz2 |
tar打包,bzip2程序压缩的文件 |
文件的压缩格式有很多种,而我们常用的命令主要包括zip,rar,tar。
zip压缩打包程序
- 文件压缩:
zip -r -q -e -l -o Code.zip -9 Code/ -x Code/*.zip

其中:
-r表示递归压缩包含子目录内容
-q表示安静模式,不向屏幕输出信息
-e表示加密压缩包
-l表示将Linux下LF换行符转换成Windows下CR+LF回车加换行
-o <filename>表示输出文件的文件名
-9表示文件压缩级别,压缩级别[1-9]级,1表示最快压缩但压缩包最大,9表示压缩包体积最小但压缩耗时最久。
-x表示排除某些文件,只有打包对象和排除对象都使用绝对路径才生效
- 文件解压:
unzip -O GBK -q Code.zip -d eldon

其中:
-O表示指定编码类型
-q表示安静模式
-d表示解压到指定目录
- 压缩包查看:
unzip -l Code.zip

rar压缩打包程序
- 文件压缩:
rar a Code.rar Code

注意:rar命令参数中没有-,如果加上会报错
- 查看压缩包内容:
rar l Code.rar

- 文件解压:
unrar x Code.rar eldon1

unrar e Code.rar eldon2

rar命令参数很多,可以使用man手册获取更多帮助
tar压缩打包程序
Linux上更常用的打包工具是tar,tar原本是一个打包工具,同时还是实现了对7z、gzip、xz、bzip2等工具的支持,这些压缩工具本身只实现了对文件或目录的压缩,没有实现对文件的打包压缩,所以我们只需要在tar中使用不同的参数来压缩文件成不同的格式。
- 文件打包:
tar -cvf Code.tar Code

- 查看包内容:
tar -tf Code.tar

- 文件解包:
tar -xf Code.tar -C Code

- 保留文件属性和跟随链接(符号链接或软链接):
tar -cphf Code.tar Code/

- 打包gz压缩格式文件:
tar -czf Code.tar.gz Code

- 解压gz格式压缩文件:
tar -xzf Code.tar.gz

其中:
-c表示创建一个tar包文件
-f表示指定创建的包名,-f参数之后必须紧跟报名
-v表示可视模式
-P表示保留绝对路径符
-x表示解包文件
-C表示解包到指定目录(目录需要已存在)
-t表示查看包内容
-p表示保留文件属性
-h表示保留保留备份链接指向的源文件而不是链接本身
-z表示文件使用gzip格式压缩
-J表示文件使用xz格式压缩
-j表示文件使用bzip2格式压缩
tar命令参数很多,可以使用man手册获取更多帮助