Linux文件压缩和解压使用记录

Posted 话·醉月

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux文件压缩和解压使用记录相关的知识,希望对你有一定的参考价值。

一:tar(可压缩可解压)

  • tar命令是Unix/Linux系统中备份文件的可靠方法,几乎可以工作于任何环境中,它的使用权限是所有用户。但是tar本身只是一个文件打包工具,只有和其他工具组合时才具有压缩/解压文件功能。
  • 使用tar命令压缩文件的格式是:tar  参数[主选项+辅选项]   ‘文件或目录 ‘
  • 参数主选项
    • -c 创建新的档案文件。如果用户想备份一个目录或是一些文件,就要选择这个选项。
    • -r 把要存档的文件追加到档案文件的未尾。例如用户已经做好备份文件,又发现还有一个目录或是一些文件忘记备份了,这时可以使用该选项,将忘记的目录或文件追加到备份文件中。
    • -t 列出档案文件的内容,查看已经备份了哪些文件。
    • -u 更新文件。就是说,用新增的文件取代原备份文件,如果在备份文件中找不到要更新的文件,则把它追加到备份文件的最后。
    • -x 从档案文件中释放文件。
  • 参数副选项
    • -b 该选项是为磁带机设定的,其后跟一数字,用来说明区块的大小,系统预设值为20(20×512 bytes)。
    • -f 指定档案文件名或设备名,这个选项通常是必选的,此参数必须放在最后,后面跟被压缩或者解压的文件名称。
    • -k 保存已经存在的文件。例如把某个文件还原,在还原的过程中遇到相同的文件,不会进行覆盖。
    • -m 在还原文件时,把所有文件的修改时间设定为现在。
    • -M 创建多卷的档案文件,以便在几个磁盘中存放。
    • -v 详细报告tar处理的文件信息。如无此选项,tar不报告文件信息。
    • -w 每一步都要求确认。
    • -z 用gzip来压缩/解压缩文件,加上该选项后可以将档案文件进行压缩,但还原时也一定要使用该选项进行解压缩。
  • 使用方法
    • tar命令可以将文件打包,一般打包文件时我们习惯将打包后的文件后缀设置为.tar
      • 打包:tar -cvf  ‘生成文件名称‘  ‘被打包的文件或者目录名称‘   
        • eg: tar -cvf  ‘test.bpm.tar‘ ‘test.bpm‘,在当前目录下得到文件test.bpm.tar
        • eg: tar -cvf  ‘/home/test.bpm.tar‘  ‘test.bpm‘,在/home目录写得到文件test.bpm.tar
      • 解包:tar -xvf  ‘被解包的文件名称‘ 
        • eg: tar -xvf  ‘test.bpm.tar‘,在当前目录下得到文件test.bpm
        • eg: tar -xvf  ‘test.bpm.tar‘  -C ‘/home/‘,在/home目录下得到文件test.bpm,解包到其他路径下一定要使用 -C 参数
    • tar命令可以使用参数-z,以gzip方式将文件压缩或者解压。一般打包文件时我们习惯将打包后的文件后缀设置为.tar.gz
      • 压缩文件:tar -czvf ‘文件或者目录名称‘ 
        • eg: tar -czvf  ‘test.bpm.tar.gz‘ ‘test.bpm‘,在当前目录得到文件test.bpm.tar.gz
        • eg: tar -czvf  ‘/home/test.bpm.tar.gz‘  ‘test.bpm‘,在/home目录得到文件test.bpm.tar.gz
      • 解压文件:tar -xzvf  ‘文件或者目录名称‘
        • eg: tar -xzvf  ‘test.bpm.tar.gz‘,在当前目录得到文件test.bpm
        • eg: tar -xzvf  ‘test.bpm.tar.gz‘ -C  ‘/home/‘ ,在home目录得到文件test.bpm
  • 报错提示
    • 打包或者压缩时
      • 报错:谨慎地拒绝创建空归档文件
      • 原因:没有指定打包或者压缩文件后的名称
    • 解包或者解压时
      • 报错:归档中找不到
      • 原因:在指定解包或者解压后文件存放位置时,没有使用 -C 参数,不能够成功指定文件存放位置

二:gzip和gunzip

  • gzip:将文件压缩为后缀为.gz的文件
    • 使用gzip命令压缩文件的格式是:gzip 参数[选项]  ‘文件或目录 ‘
    • 参数
      • -d 解开压缩文件;
      • -c 将输出写到标准输出上,并保留原有文件。
      • -r 递归处理,将指定目录下的所有文件及子目录一并处理
      • -f:强行压缩文件。不理会文件名称或硬连接是否存在以及该文件是否为符号连接;
      • -L:显示版本与版权信息;
      • -n:压缩文件时,不保存原来的文件名称及时间戳记;
      • -N:压缩文件时,保存原来的文件名称及时间戳记;
      • -t:测试压缩文件是否正确无误;
      • -<压缩效率>:压缩效率是一个介于1~9的数值,预设值为“6”,指定愈大的数值,压缩效率就会愈高;
        • --best:此参数的效果和指定“-9”参数相同;
        • --fast:此参数的效果和指定“-1”参数相同。
    • 栗子
      • 将test.bpm文件压缩到当前目录
        • 方法一:gzip -crf  ‘test.bpm‘ > ‘test.bpm.gz‘ 。得到文件test.bpm.gz
        • 方法二:gzip -rf  ‘test.bpm‘ 。得到文件test.bpm.gz
        • 注意,以上两种方法的区别是方法一将文件压缩之后,源文件不会消失,但是却需要自己指定压缩后的文件名称;方法二将文件压缩之后,源文件会消失不见,但是却不需要自己指定压缩后的文件名称,会自动生成后缀为 .gz 的和源文件名称相同的文件
      • 将test.bmp文件压缩到指定目录
        • gzip cf  ‘test.bpm‘ > ‘/home/test.bpm.gz‘。得到文件test.bpm.gz
  • gunzip:将后缀为.gz文件解压
    • 使用gzip命令压缩文件的格式是:gzip 参数[选项]  ‘文件或目录 ‘
    • 参数同gzip相同
    • 栗子
      • 将test.bpm.gz文件解压到当前目录
        • 方法一:gunzip -crf  ‘test.bpm.gz‘ > ‘test.bpm‘。得到文件test.bpm
        • 方法二:gunzip -rf  ‘test.bpm.gz‘ 。得到文件test.bpm
        • 注意,以上两种方法的区别是方法一将文件解压之后,源文件不会消失,但是却需要自己指定解压后的文件名称;方法二将文件解压之后,源文件会消失不见,但是却不需要自己指定解压后的文件名称,会自动解压成和源文件名称相同的文件
      • 将test.bpm.gz文件解压到指定目录
        • gunzip -crf  ‘test.bpm.gz‘ > ‘/home/test.bpm‘。得到文件test.bpm
  • gzip 使用参数 -d 时,作用等同于gunzip。也就是当解压.gz文件时,使用 gzip -d 对文件进行解压也是一样的。参数设置也是一样的。

三:zip和unzip

  • 使用zip/unzip命令压缩文件的格式是:zip 参数[选项]  ‘文件或目录 ‘
  • zip
    • 参数
      • -c:将解压缩的结果
      • -l:显示压缩文件内所包含的文件
      • -n:解压缩时不要覆盖原有的文件
      • -v:执行是时显示详细的信息
      • -C:压缩文件中的文件名称区分大小写
      • -t:检查压缩文件是否正确
      • -u:与-f参数类似,但是除了更新现有的文件外,也会将压缩文件中的其它文件解压缩到目录中
    • 栗子
      • 将test.bpm文件压缩到当前目录:zip  -rv ‘test.bpm.zip‘ ‘test.bpm‘
      • 将test.bpm文件压缩到/home指定目录:zip  -rv ‘/home/test.bpm.zip‘  ‘test.bpm‘
  • unzip
    • 参数
      • -d<目录>:指定文件解压缩后所要存储的目录;
    • 栗子
      • 将test.bpm.gz文件解压到当前目录:unzip  ‘test.bpm.zip‘
      • 将test.bpm文件压缩到/home指定目录:zip  ‘/home/test.bpm.zip‘  -d ‘/home‘

以上是关于Linux文件压缩和解压使用记录的主要内容,如果未能解决你的问题,请参考以下文章

linux解压包

Linux之tar命令

Linux 系统 压缩和解压 gz 格式文件

如何在Linux上使用tar命令解压和压缩文件

如何在Linux上使用tar命令解压和压缩文件

解压zip的linux命令