文件压缩与解压
Windows 上最常见的两种以*.zip,*.7z
为后缀的压缩文件。
Linux 上面常见的格式除了以上两种外,还有*.rar,*.gz,*.xz,*.bz2,*.tar,*.tar.gz,*.tar.xz,*.tar.bz2
。
一般只需掌握zip,tar等常用命令即可。
概念区分:
- 打包:是将多个文件,或目录变成一个总的文件,文件不会变小,说不定还会变大,增加一些附加的信息来注明文件的信息比如位置什么的。
- 压缩:将一个大的文件通过某个压缩算法变成小文件。注意压缩只是对一个文件进行操作,当要对多个文件进行压缩时就要借助于打包了,先打包再压缩。
zip打包压缩程序
-
使用zip打包文件夹
zip -r -q -o shiyanlou.zip /home/shiyanlou/Desktop
-r
参数表示递归打包包含子目录的全部内容,-q
参数表示为安静模式,即不向屏幕输出信息,-o
表示输出文件,需在其后紧跟打包输出文件名。
du -h shiyanlou.zip //查看文件大小
file shiyanlou.zip //查看文件类型
-
设置压缩级别重新打包
zip -r -9 -q -o shiyanlou_9.zip /home/shiyanlou/Desktop -x ~/*.zip
zip -r -1 -q -o shiyanlou_1.zip /home/shiyanlou/Desktop -x ~/*.zip
1 表示最快压缩但体积大,9 表示体积最小但耗时最久(9级别最高),-x 是为了排除我们上一次创建的 zip 文件,否则又会被打包进这一次的压缩文件中,注意:这里只能使用绝对路径,否则不起作用。默认压缩级别应该是最高的。 -
使用-e参数创建加密zip包
zip -r -e -o shiyanlou_encryption.zip /home/shiyanlou/Desktop
注意: 关于 zip 命令,因为 Windows 系统与 Linux/Unix 在文本文件格式上的一些兼容问题,比如换行符(为不可见字符),在不加处理的情况下,在 Linux 上编辑的文本,在 Windows 系统上打开可能看起来是没有换行的。如果你想让你在 Linux 创建的 zip 压缩文件在 Windows 上解压后没有任何问题,那么你还需要对命令做一些修改:
zip -r -l -o shiyanlou.zip /home/shiyanlou/Desktop
-l
参数将LF
转换为CR+LF
来达到目的 -
用unzip命令解压缩zip文件
unzip shiyanlou.zip //一句话
unzip -q shiyanlou.zip -d ziptest
-q
使用安静模式,-d
将文件解压到指定目录,目录不存在,将会自动创建
unzip -l shiyanlou.zip //若你不想解压只想查看压缩包的内容你可以使用 -l 参数
注意: 使用 unzip 解压文件时我们同样应该注意兼容问题(中文编码问题),通常 Windows 系统上面创建的压缩文件,如果有有包含中文的文档或以中文作为文件名的文件时默认会采用 GBK 或其它编码,而 Linux 上面默认使用的是 UTF-8 编码,如果不加任何处理,直接解压的话可能会出现中文乱码的问题(有时候它会自动帮你处理),为了解决这个问题,我们可以在解压时指定编码类型:
unzip -O GBK 中文压缩文件.zip //使用 -O(大写)指定编码类型
tar打包工具
在 Linux 上面更常用的是 tar 工具,tar只是一个打包工具,但同时实现了对 7z、gzip、xz、bzip2
等压缩工具的支持(这些压缩工具只能对单独文件压缩),所以通过命令的组合就能实现文件的打包压缩(相当于zip),tar 的解压和压缩都是同一个命令,只需参数不同。
不进行压缩,只进行打包和解包操作:
-
创建一个tar包:
tar -cf shiyanlou.tar /home/shiyanlou/Desktop //将目录打包
-c
表示创建一个 tar 包文件,-f
用于指定创建的文件名,注意文件名必须紧跟在-f
参数之后,比如不能写成tar -fc shiyanlou.tar
,可以写成tar -f shiyanlou.tar -c ~
。你还可以加上-v
参数以可视的的方式输出打包的文件。 -
解tar包:
mkdir tardir
tar -xf shiyanlou.tar -C tardir
解包一个文件(-x
参数),到指定路径的已存在目录(-C
参数)
tar -tf shiyanlou.tar //只看不解包, -t 参数
使用命令的组合创建不同类型的压缩文件:
我们只需要在创建 tar 文件的基础上添加 -z 参数,使用gzip
来压缩文件:
tar -czf shiyanlou.tar.gz /home/shiyanlou/Desktop
解压 *.tar.gz 文件:
tar -xzf shiyanlou.tar.gz
还有其他常用的压缩文件格式与参数:
小程序
sudo apt-get install libaa-bin
aafire