欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

文件和文件系统的压缩与打包

最编程 2024-04-28 12:21:24
...

Linux下面的扩展名时没有什么特殊的意义的,但是Linux支持的压缩命令非常多,且不同的压缩命令所用的压缩技术并不相同,彼此之间可能无法相互压缩/解压文件。所以压缩文件会有后缀名来帮助我们了解使用的是什么压缩命令。

Linux常用的压缩命令:

  • *.Z compress程序压缩的文件;
  • <u>*.gz gzip程序压缩的文件;</u> 常见
  • <u>*.bz2 bzip2程序压缩的文件;</u> 常见
  • .tar tar程序打包的数据,并没有压缩过*
  • .tar.gz tar程序打包的文件,其中经过gzip的压缩*
  • .tar.bz2 tar程序打包的文件,其中经过bzip2的压缩*

gzip和bz2只能对一个文件压缩与解压,tar是打包软件;将目录或者很多文件“打包”成一个文件,无压缩功能

gzip [-cdtv#] 文件名

  • -c:将压缩的数据输出到屏幕上,可通过数据流重定向来处理
  • -d:解压缩的参数;
  • -t:可以用来检验一个压缩文件的一致性,看文件有无错误。
  • -v:可以显示出源文件/压缩文件的压缩比等级
  • -#:压缩等级,1-9,-1最快,压缩比最差,-9最慢;压缩比最好默认是-6。

压缩:gzip -v man.config

解压缩:

  • gzip -d man.config.gz #与gzip相反,gzip -d 会将原本的.gz删除,产生原本的man.config文件。

  • Linux压缩保留源文件的方法:
    gzip -c filename > filename.gz

    Linux解压缩保留源文件的方法:
    gunzip filename.gz > filename 或者 gzip -c -d filename.gz > filename

bzip2:bzip2[-cdkzv#] 文件名。压缩比比gzip好,但用法一样

-k:保留源文件而不会删除源文件

-z:压缩的参数

-d:解压的参数

压缩并保留源文件:bzip2 -k services or bzip2 -c services>services.bz2

解压并保留源文件:bzip2 -k -d services.bz2 or bunzip2 -k services.bz2 or

bunzip2 -c services.bz2>services or bunzip2 -k services.bz2

打包命令tar

tar [-j|-z] [cv] [-f 新建的文件名] filename 《==打包与压缩

tar [-j|-z] [tv] [-f 新建的文件名] 《==查看文件名

tar [-j|-z] [xv] [-f 新建的文件名] [-C 目录]《==解压缩

参数:

  • -c:新建打包文件,可搭配-v来查看过程中被打包的文件名(filename)

  • -t: 查看打包文件的内容有那些文件名,重点在查看文件名

  • -x:解压缩,可搭配-C在特定目录解开

  • -j: 通过bzip2的支持进行压缩/解压缩,此时文件名最好为*.tar.bz2

  • -z:通过gzip的支持进行压缩/解压缩,此时文件名最好为*.tar.gz

  • -v:在压缩/解压缩的过程中,将正在处理的文件名显示出来

  • -f filename: -f后面要接被处理的文件名。建议-f单独写一个参数

  • -C:目录:这个参数用在解压缩时,若要在特定目录解压缩,可以使用这个参数

  • -p(小P):保留备份数据的原本权限与属性,常用于备份重要的配置文件

  • -P(大P):保留绝对路径,即允许备份数据中含有根目录存在之意

最简单的tar使用:

  • 压缩:tar -jcv -f filename.tar.bz2 要被压缩的文件或目录的名字【c:create】**[v:verbose详细显示]
压缩tar
    • tar -zpcv -f /root/etc.tar.gz /etc my_date
    • tar -jpcv -f /root/etc.tar.bz2 /etc
  • 查询:tar -jtv -f filename.tar.bz2(压缩中的小p参数没有将根目录复制过来)【t:list

    • tar -jcv -f /root/etc.tar.bz2
      1572352713425.png
  • 如果压缩命令是tar -jpPcv -f /root/etc.tar.bz2 /etc就会将根目录(绝对路径一起保留)

    1572352852768.png

  • 解压缩:tar -jxv -f filename.tar.bz2 -C 欲解压的目录【x:extract解压

    • tar -jxv -f /root/etc.tar.bz2; ll此时该打包文件会在本目录下进行解压缩

    • tar -jxv -f /root/etc.tar.bz2 -C /tmp 此时会在/tmp目录下进行解压缩。