linux 压缩和解压缩zip

  • 使用 zip 打包文件夹:
  • $ cd /home/shiyanlou
    $ zip -r -q -o shiyanlou.zip /home/shiyanlou/Desktop
    $ du -h shiyanlou.zip
    $ file shiyanlou.zip
    

    上面命令将目录 /home/shiyanlou/Desktop 打包成一个文件,并查看了打包后文件的大小和类型。第一行命令中,-r 参数表示递归打包包含子目录的全部内容,-q 参数表示为安静模式,即不向屏幕输出信息,-o,表示输出文件,需在其后紧跟打包输出文件名。后面使用 du命令查看打包后文件的大小(后面会具体说明该命令)。

  • 设置压缩级别为 9 和 1(9 最大,1 最小),重新打包:
  • $ 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],1 表示最快压缩但体积大,9 表示体积最小但耗时最久。最后那个 -x 是为了排除我们上一次创建的 zip 文件,否则又会被打包进这一次的压缩文件中,注意:这里只能使用绝对路径,否则不起作用

    我们再用 du 命令分别查看默认压缩级别、最低、最高压缩级别及未压缩的文件的大小:

    $ du -h -d 0 *.zip ~ | sort
    

    通过 man 手册可知:

  • h, --human-readable(顾名思义,你可以试试不加的情况)
  • d, --max-depth(所查看文件的深度)
  • 这样一目了然,你可以看到默认压缩级别应该是最高的,效果很明显,不过你在环境中操作之后看到的压缩文件大小可能跟图上的有些不同,因为系统在使用过程中,会随时生成一些缓存文件在当前用户的家目录中,这对于我们学习命令使用来说,是无关紧要的,可以忽略这些不同。

  • 将 shiyanlou.zip 解压到当前目录:

    $ unzip shiyanlou.zip
    

    使用安静模式,将文件解压到指定目录:

    $ unzip -q shiyanlou.zip -d ziptest
    

    上述指定目录不存在,将会自动创建。如果你不想解压只想查看压缩包的内容你可以使用 -l 参数:

    $ unzip -l shiyanlou.zip
    

    注意: 使用 unzip 解压文件时我们同样应该注意兼容问题,不过这里我们关心的不再是上面的问题,而是中文编码的问题,通常 Windows 系统上面创建的压缩文件,如果有有包含中文的文档或以中文作为文件名的文件时默认会采用 GBK 或其它编码,而 Linux 上面默认使用的是 UTF-8 编码,如果不加任何处理,直接解压的话可能会出现中文乱码的问题(有时候它会自动帮你处理),为了解决这个问题,我们可以在解压时指定编码类型。

    使用 -O(英文字母,大写 o)参数指定编码类型:

    unzip -O GBK 中文
  • 创建加密 zip 包
  • 使用 -e 参数可以创建加密压缩包:

    $ zip -r -e -o shiyanlou_encryption.zip /home/shiyanlou/Desktop
    

    注意: 关于 zip 命令,因为 Windows 系统与 Linux/Unix 在文本文件格式上的一些兼容问题,比如换行符(为不可见字符),在 Windows 为 CR+LF(Carriage-Return+Line-Feed:回车加换行),而在 Linux/Unix 上为 LF(换行),所以如果在不加处理的情况下,在 Linux 上编辑的文本,在 Windows 系统上打开可能看起来是没有换行的。如果你想让你在 Linux 创建的 zip 压缩文件在 Windows 上解压后没有任何问题,那么你还需要对命令做一些修改:

    $ zip -r -l -o shiyanlou.zip /home/shiyanlou/Desktop
    

    需要加上 -l 参数将 LF 转换为 CR+LF 来达到以上目的。

Linux系统中,压缩和解压缩文件是日常操作中的重要任务。以下是常用的压缩和解压缩命令及其使用方法。 ### `.zip` 格式 `.zip` 是一种常见的跨平台压缩格式,适用于需要在不同操作系统之间共享文件的情况。 - **压缩**:使用 `zip` 命令进行压缩,例如: ```bash zip archive.zip file1.txt file2.txt ``` 如果要压缩一个目录,可以加上 `-r` 选项: ```bash zip -r directory.zip directory/ ``` - **解压**:使用 `unzip` 命令进行解压,例如: ```bash unzip archive.zip ``` 可以通过 `-d` 选项指定解压的目标路径: ```bash unzip archive.zip -d /path/to/destination/ ``` ### `.gz` 格式 `.gz` 是一种常见的单文件压缩格式,通常用于压缩单个文件。 - **压缩**:使用 `gzip` 命令进行压缩,例如: ```bash gzip file.txt ``` 这会生成 `file.txt.gz` 文件,并删除原始文件。 - **解压**:使用 `gunzip` 或 `gzip -d` 命令进行解压,例如: ```bash gunzip file.txt.gz ``` 或者: ```bash gzip -d file.txt.gz ``` ### `.tar.gz` 和 `.tgz` 格式 `.tar.gz` 和 `.tgz` 是一种组合格式,其中 `.tar` 用于打包文件,而 `.gz` 用于压缩打包后的文件。 - **打包并压缩**:使用 `tar` 命令进行打包并压缩,例如: ```bash tar czvf archive.tar.gz directory/ ``` - **解压**:使用 `tar` 命令进行解压,例如: ```bash tar xzvf archive.tar.gz ``` 可以通过 `-C` 选项指定解压的目标路径: ```bash tar xzvf archive.tar.gz -C /path/to/destination/ ``` ### `.bz2` 格式 `.bz2` 是一种提供更高压缩率的单文件压缩格式。 - **压缩**:使用 `bzip2` 命令进行压缩,例如: ```bash bzip2 file.txt ``` 这会生成 `file.txt.bz2` 文件,并删除原始文件。 - **解压**:使用 `bzip2 -d` 或 `bunzip2` 命令进行解压,例如: ```bash bzip2 -d file.txt.bz2 ``` 或者: ```bash bunzip2 file.txt.bz2 ``` ### `.tar.bz2` 格式 `.tar.bz2` 是一种组合格式,其中 `.tar` 用于打包文件,而 `.bz2` 用于压缩打包后的文件。 - **打包并压缩**:使用 `tar` 命令进行打包并压缩,例如: ```bash tar cjvf archive.tar.bz2 directory/ ``` - **解压**:使用 `tar` 命令进行解压,例如: ```bash tar jxvf archive.tar.bz2 ``` 可以通过 `-C` 选项指定解压的目标路径: ```bash tar jxvf archive.tar.bz2 -C /path/to/destination/ ``` ### `.xz` 格式 `.xz` 是一种提供高压缩率的单文件压缩格式。 - **压缩**:使用 `xz` 命令进行压缩,例如: ```bash xz file.txt ``` 这会生成 `file.txt.xz` 文件,并删除原始文件。 - **解压**:使用 `xz -d` 或 `unxz` 命令进行解压,例如: ```bash xz -d file.txt.xz ``` 或者: ```bash unxz file.txt.xz ``` ### `.rar` 格式 `.rar` 是一种常见的压缩格式,在Windows系统中非常流行。 - **压缩**:使用 `rar` 命令进行压缩,例如: ```bash rar a archive.rar file1.txt file2.txt ``` 如果要压缩一个目录,可以加上 `-r` 选项: ```bash rar a -r archive.rar directory/ ``` - **解压**:使用 `rar` 命令进行解压,例如: ```bash rar x archive.rar ``` ### 其他常用选项 - **查看压缩信息**:许多命令支持查看压缩文件的信息,例如 `unzip -l` 可以列出 `.zip` 文件的内容[^3]。 - **压缩级别**:某些命令(如 `gzip`)允许指定压缩级别,从 `-1`(最低)到 `-9`(最高),默认是 `-6`。例如: ```bash gzip -9 file.txt ``` 这些命令可以帮助用户在Linux系统中高效地管理和处理压缩文件。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值