在学习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手册获取更多帮助