1.概述
- 习惯了在windows 下利用软件进行压缩和解压缩,那么在 Linux 的命令行模式下如何进行操作呐?
- Linux 下常用的压缩和解压缩命令有3个:zip , unzip , tar
2. 使用
2.1 zip 命令
- zip 命令是针对 .zip 文件的,用于将一个/多个文件压缩成 .zip 格式的文件,其命令格式如下:
zip [参数] [目标压缩文件.zip] [源文件]
相关参数如下:
-b<工作目录 > 指定暂时存放文件的目录。
-d 从 zip 文件中删除一个文件。
-F 尝试修复已经损毁的压缩文件。
-g 将文件压缩入现有的压缩文件中,不需要新建。
-h 帮助。
-j 只保存文件的名,不保存目录。
-m 压缩完成以后删除源文件。
-n<字尾符号 > 不压缩特定扩展名的文件。
-q 不显示压缩命令执行过程。
-r 递归压缩,将指定目录下的所有文件和子目录一起压缩。
-v 显示指令执行过程。
-num 压缩率,为 压缩率,为 压缩率,为 1~9的数值。
- 例如,将 wzl 文件夹压缩成wzl_1,使用如下命令:
zip -rv wzl_1.zip wzl
2.2 unzip 命令
- 与zip 命令相反,unzip 命令用于对 .zip 格式的压缩包进行及压缩,其命令格式如下:
unzip [参数] [解压缩文件名.zip]
主要参数如下:
-l 显示压缩文件内所包含的文件。
-t 检查压缩文件是否损坏,但不解压。
-v 显示命令的执行过程。
-Z 只显示压缩文件的注解。
-C 压缩文件中的名称区分大小写。
-j 不处理压缩文件中的原有目录路径。
-L 将压缩文件中的全部文件名改为小写。
-n 解压缩时不需要覆盖原有文件。
-P<密码> 解压密码。
-q 静默执行,不显示任何信息。
-x<文件列表 > 指定不要处理.zip中的哪些文件中的哪些文件。
-d<目录 > 把压缩文件解到指定目录下。
例如,将上面的wzl_1.zip 解压缩成 wzl 并保存到 /home 目录
unzip -d /home/wzl wzl_1.zip
- unzip解压缩中文问题
# 指定编码GBK
unzip -O GBK xxx.zip
2.3 tar命令
- zip 和 unzip 命令只能对 .zip 类型的文件进行操作,对其他文件就无能为力了,比如Linux 中最常使用到 .gz 和 .bz2 文件,这2种类型的文件需要使用到tar 命令。tar 将压缩和解压缩集合到一起,只是使用不同的参数而已,其命令格式如下:
tar [参数] [已经压缩文件名] [未被压缩文件名]
常用参数如下:
-c 创建新的压缩文件。
-C<目的目录> 切换到指定的目录。
-f<备份文件> 指定压缩文件。
-j 使用bzip2进行压缩/解压,一般使用.tar.bz2后缀
-v 显示指令执行过程。
-w 遭遇问题时先询问用户。
-x 从备份文件中释放文件,也就是解压缩文件。
-z 用tar 生成压缩文件,用 gzip 压缩。
-Z 用tar 生成压缩文件,用 compress 压缩。
例如,将wzl 压缩成 .bz2 和 .gz 格式
tar -vcjf wzl.tar.bz2 wzl
tar -vczf wzl.tar.gz wzl
将压缩文件解压缩命令为:
tar -vxjf wzl.tar.ba2
tar -vxzf wzl.tar.gz
3.参考
- https://www.runoob.com/linux/linux-comm-unzip.html
- https://www.jianshu.com/p/bd4e41d903b9