加入收藏 | 设为首页 | 会员中心 | 我要投稿 拼字网 - 核心网 (https://www.hexinwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

Linux文件归档和压缩-tar、gzip/gunzip、zip/unzip方式

发布时间:2022-11-15 11:26:24 所属栏目:Linux 来源:
导读:  归档(也称为打包)是一个文件和目录的集合,而这个集合被储存在一个文件中,归档文件没有压缩,它占用的空间是其中所有文件和目录的总和。压缩是利用算法将文件进行处理,以达到保留最多文件信息,而让文件容量
  归档(也称为打包)是一个文件和目录的集合,而这个集合被储存在一个文件中,归档文件没有压缩,它占用的空间是其中所有文件和目录的总和。压缩是利用算法将文件进行处理,以达到保留最多文件信息,而让文件容量变小,计算机中压缩处理是将二进制信息中相同的字符串以特殊字符标记已达到压缩的目的。
 
  压缩解压示意图
 
  在Linux系统中,常用到的压缩工具有tar、gzip、bzip2、zip、xz、compress和rar等。
 
  归档程序tar
 
  tar是Linux系统最常用到的归档程序,归档的包称为tar包,通常以“.tar”结尾。生成tar包后,还可以用其它程序来对tar包进行压缩(比如调用gzip、bzip2或xz程序)。
 
  1、命令语法:
 
  tar [选项] [文件|目录]
  命令中选项的含义:
 
  -c: 创建新的归档文件
  -A:追加tar文件至归档
  -r:追加文件至归档结尾
  -t:列出归档文件的内容,查看已经备份了哪些文件
  -u:仅追加比归档中副本更新的文件
  -x:从归档文件中释放文件
  -f:使用归档文件或设备
  -k:保存已经存在的文件。在还原文件时遇到相同的文件时,不会进行覆盖
  -m:在还原文tar处理的信息
  -M:创建多卷的归档文件,以便在几个磁盘中存放
  -v:详细报告tar的归档信息
  -w:每一步操作都要确认
  -C<目录>:解压到特点目录
  -z:通过gzip过滤归档
  -j:通过bzip2过滤归档
  -J:通过xz过滤归档
  -a:使用归档后缀名来决定压缩程序gu
  2、归档/home/tar_test目录
 
  生成/home/tar_test.tar:
 
  [root@liu ~]# tar -zcvf /home/tar_test.tar /home/tar_test
  tar: 从成员名中删除开头的“/”
  /home/tar_test/
  /home/tar_test/bbb
  /home/tar_test/ccc
  /home/tar_test/aaa
  查看/home/tar_test.tar:
 
  [root@liu ~]# tar -tvf /home/tar_test.tar
  drwxr-xr-x root/root 0 2019-08-25 20:47 home/tar_test/
  -rw-r--r-- root/root 0 2019-08-25 18:14 home/tar_test/bbb
  -rw-r--r-- root/root 0 2019-08-25 18:14 home/tar_test/ccc
  -rw-r--r-- root/root 0 2019-08-25 18:14 home/tar_test/aaa
  3、tar调用gzip程序压缩
 
  tar命令可以在归档或者解包的同时调用gzip压缩程序。gzip压缩包的文件通常以“.gz”结尾,与gzip对应的解压缩程序是gunzip。
 
  压缩/home/tar_test目录,生成/home/tar_test.tar.gz:
 
  [root@liu ~]# tar -zcvf /home/tar_test.tar.gz /home/tar_test
  tar: 从成员名中删除开头的“/”
  /home/tar_test/
  /home/tar_test/bbb
  /home/tar_test/ccc
  /home/tar_test/aaa
  查看/home/tar_test.tar.gz:
 
  [root@liu ~]# tar -ztvf /home/tar_test.tar.gz
  drwxr-xr-x root/root 0 2019-08-25 20:47 home/tar_test/
  -rw-r--r-- root/root 0 2019-08-25 18:14 home/tar_test/bbb
  -rw-r--r-- root/root 0 2019-08-25 18:14 home/tar_test/ccc
  -rw-r--r-- root/root 0 2019-08-25 18:14 home/tar_test/aaa
  解压tar_test.tar.gz:
 
  [root@liu ~]# tar -zxvf /home/tar_test.tar.gz
  home/tar_test/
  home/tar_test/bbb
  home/tar_test/ccc
  home/tar_test/aaa
  4、tar调用bzip2程序压缩
 
  tar命令可以在归档或者解包的同时调用bzip2压缩程序。bzip2压缩包的文件通常以“.bz2”结尾linux压缩,与bzip2对应的解压缩程序是bunzip2。
 
  压缩/home/tar_test目录,生成/home/tar_test.tar.bz2:
 
  [root@liu ~]# tar -jcvf /home/tar_test.tar.bz2 /home/tar_test
  tar: 从成员名中删除开头的“/”
  /home/tar_test/
  /home/tar_test/bbb
  /home/tar_test/ccc
  /home/tar_test/aaa
  查看/home/tar_test.tar.bz2:
 
  [root@liu ~]# tar -jtvf /home/tar_test.tar.bz2
  drwxr-xr-x root/root 0 2019-08-25 20:47 home/tar_test/
  -rw-r--r-- root/root 0 2019-08-25 18:14 home/tar_test/bbb
  -rw-r--r-- root/root 0 2019-08-25 18:14 home/tar_test/ccc
  -rw-r--r-- root/root 0 2019-08-25 18:14 home/tar_test/aaa
  解压tar_test.tar.bz2:
 
  [root@liu ~]# tar -jxvf /home/tar_test.tar.bz2
  home/tar_test/
  home/tar_test/bbb
  home/tar_test/ccc
  home/tar_test/aaa
  5、tar调用xz程序压缩
 
  tar命令可以在归档或者解包的同时调用xz压缩程序。xz压缩包的文件通常以“.xz”结尾,xz是一个使用LZMA压缩算法的无损数据压缩文件格式,tar命令使用-J选项调用xz。
 
  压缩/home/tar_test目录,生成/home/tar_test.tar.xz:
 
  [root@liu ~]#tar -Jcvf /home/tar_test.tar.xz /home/tar_test
  tar: 从成员名中删除开头的“/”
  /home/tar_test/
  /home/tar_test/bbb
  /home/tar_test/ccc
  /home/tar_test/aaa
  查看/home/tar_test.tar.xz:
 
  [root@liu ~]# tar -Jtvf /home/tar_test.tar.xz
  drwxr-xr-x root/root 0 2019-08-25 20:47 home/tar_test/
  -rw-r--r-- root/root 0 2019-08-25 18:14 home/tar_test/bbb
  -rw-r--r-- root/root 0 2019-08-25 18:14 home/tar_test/ccc
  -rw-r--r-- root/root 0 2019-08-25 18:14 home/tar_test/aaa
  解压tar_test.tar.xz:
 
  [root@liu ~]# tar -Jxvf /home/tar_test.tar.xz
  home/tar_test/
  home/tar_test/bbb
  home/tar_test/ccc
  home/tar_test/aaa
  压缩解压gzip和gunzip
 
  gzip是GNUzip的缩写,是一款GUN自由软件的文件压缩程序,普遍用于UNIX/Linux系统的文件压缩,生成的压缩文件是gzip格式,文件后缀通常用“.gz”。
 
  1、gzip命令语法:
 
  gzip [选项] [文件]
  命令中选项的含义:
 
  -c:将输出写到标准输出上,并保留源文件
  -d:将压缩文件进行解压缩
  -f:强制覆盖输出文件和压缩链接
  -l:对每一个压缩文件,现实如下字段
   压缩文件的大小
   未压缩文件的大小
   压缩比
   未压缩文件的名字
  -r:递归的查找指定目录并压缩或解压缩其中的所有文件
  -t:测试,压缩文件是否完整
  -v:对每一个压缩或解压的文件,显示文件名和压缩比
  -l:压缩更快
  -9:压缩更好
  2、gzip命令压缩、解压/home/test文件
 
  将/home/test文件压缩成/home/test.gz:
 
  [root@liu ~]# gzip /home/test
  // gzip命令只需指定源文件
  [root@liu ~]# ls -l /home/test.gz
  -rw-r--r-- 1 root root 25 8月 25 22:02 /home/test.gz
  显示/home/test.gz的信息:
 
  [root@liu ~]# gzip -l /home/test.gz
   compressed uncompressed ratio uncompressed_name
   25 0 0.0% /home/test
  将/home/test.gz解压缩:
 
  [root@liu ~]# gzip -dv /home/test.gz
  /home/test.gz:  0.0% -- replaced with /home/test
  3、gunzip命令语法:
 
  gunzip [选项] [文件]
  命令中选项的含义:
 
  -c:将压缩后的文件输出到标准输出设备
  -f:强制解压缩文件,不理会文件名或硬链接是否存在以及文件上是否为符号链接
  -l:列出压缩文件内容
  -n:解压时,如果压缩文件内含有原来的文件名及时间戳,则忽略不予处理
  -N:解压时,如果压缩文件内含有原来的文件名及时间戳,则将其回存到解开的文件上
  -q:不显示警告信息
  -r:递归处理,将制定目录下的所有文件及子目录一并处理
  -t:测试压缩文件是否正确无误
  -v:现实命令执行过程
  4、gunzip命令解压/home/test.gz
 
  将/home/test.gz解压缩:
 
  [root@liu ~]# gunzip /home/test.gz
  // gunzip命令只需指定源文件
  压缩解压zip和unzip
 
  “.zip”格式文件时Windows和Linux系统通用的压缩文件类型,生成的压缩文件是zip格式,文件后缀通常用“.zip”,zip是目前集中主流压缩算法之一。
 
  1、zip命令语法:
 
  zip [选项] [压缩文件] [文件]
  命令选项的含义:
 
  -m:将文件压缩之后,删除源文件
  -o:将压缩文件设置成和源文件一样的时间
  -q:安静模式,在压缩的时候不显示命令的执行过程
  -r:将指定目录下的所有子目录以及文件一起处理
  -n<特定字符串>:不压压缩具有特定字尾字符串的文件
  -v:显示详细的操作信息
  -z:添加压缩文件的注释
  -e:在压缩的时候指定加密
  -T:测试压缩文件的完整性
  -c:添加一行注释
  -u:更新压缩文件,往压缩文件内添加新文件
  -l:压缩速度更快
  -9:压缩的更好
  -x<文件名>:压缩时排除指定文件
  -i<文件名>:压缩时只包括指定文件
  2、zip命令压缩、解压/home/test文件
 
  将/home/test文件压缩成/home/test.zip:
 
  [root@liu ~]# zip /home/test.zip /home/test
   adding: home/test (stored 0%)
  [root@liu ~]# ls -l /home/test.zip
  -rw-r--r-- 1 root root 168 8月 25 22:27 /home/test.zip
  将/home/test文件压缩成/home/test.zip,并添加密码:
 
  [root@liu ~]# zip -e /home/test.zip /home/test
  Enter password:
  Verify password:
  updating: home/test (stored 0%)
  [root@liu ~]# ls -l /home/test.zip
  -rw-r--r-- 1 root root 196 8月 25 22:30 /home/test.zip
  查看/home/test.zip的内容:
 
  [root@liu ~]# zcat /home/test.zip
  gzip: /home/test.zip: encrypted file -- use unzip // 因为是加密的,所有查看不成功
  3、unzip命令语法:
 
  unzip [选项] [压缩文件]
  命令中个选项的含义:
 
  -x<文件>:解压缩文件列表,但不包括指定的文件
  -v:查看压缩文件,但不解压缩
  -t:测试文件是否损坏,但不解压缩
  -d<目录>:把压缩文件解压到指定目录下
  -z:只显示压缩文件的注释
  -n:不覆盖已存在的文件
  -o:覆盖已存在的文件且不要求用户确认
  -j:不重建文档的目录结构,把所有文件解压缩到同一目录下
  4、unzip命令解压/home/test.zip
 
  将/home/test.zip解压缩:
 
  [root@liu ~]# unzip /home/test.zip
  Archive: /home/test.zip
  [/home/test.zip] home/test password: // 压缩时候增加密码,解压需要密码
   extracting: home/test
  [root@liu ~]# ls -l /home/test
  -rw-r--r-- 1 root root 12 8月 25 22:32 /home/test
  查看压缩文件/home/test.zip,但不解压:
 
  [root@liu ~]# unzip -v /home/test.zip
  Archive: /home/test.zip
   Length Method Size Cmpr Date Time CRC-32 Name
  -------- ------ ------- ---- ---------- ----- -------- ----
   12 Stored 12 0% 08-25-2019 22:32 b095e5e3 home/test
  -------- ------- --- -------
   12 12 0% 1 file
 

(编辑:拼字网 - 核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!