文件压缩与解压

文件压缩与解压

  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
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值