前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux文件归档,压缩与解压缩

Linux文件归档,压缩与解压缩

原创
作者头像
用户2283744
修改2020-06-12 18:19:10
9.4K0
修改2020-06-12 18:19:10
举报
文章被收录于专栏:LinuxNoteLinuxNote

常见压缩文件格式

.gz

本段涉及到的命令与其常用功能。

命令

常用功能

gzip

压缩和解压缩

gunzip

解压缩

zcat

查看压缩文件内容

zless

查看压缩文本文件内容

gzip

代码语言:txt
复制
-a	或	--ascii:使用ASCII文字模式;
-d	或	--decompress或--uncompress:解开压缩文件;
-f	或	--force:强行压缩文件。不理会文件名称或硬连接是否存在以及该文件是否为符号连接;
-l	或	--list:列出压缩文件的相关信息;
-n	或	--no-name:压缩文件时,不保存原来的文件名称及时间戳记;
-N	或	--name:压缩文件时,保存原来的文件名称及时间戳记;
-q	或	--quiet:不显示警告信息;
-r	或	--recursive:递归处理,将指定目录下的所有文件及子目录一并处理;
-t	或	--test:测试压缩文件是否正确无误;
-v	或	--verbose:显示指令执行过程;
-V	或	--version:显示版本信息;
-<压缩效率>:压缩效率是一个介于1~9的数值,预设值为“6”,指定愈大的数值,压缩效率就会愈高;
--best:此参数的效果和指定“-9”参数相同;
--fast:此参数的效果和指定“-1”参数相同。

压缩与解压缩

代码语言:txt
复制
#压缩a文件为a.gz,并删除a文件
gzip a

代码语言:txt
复制
#解压缩a.gz为a,并删除a.gz
gzip -dv a.gz
或
gunzip a.gz

代码语言:txt
复制
gzip -rv /root/test    #递归的压缩目录
gzip -dr /root/test    #递归地解压目录

这样,所有/root/test下面的文件都变成了*.gz,目录依然存在只是目录里面的文件相应变成了*.gz.这就是压缩,和打包不同。因为是对目录操作,所以需要加上-r选项,这样也可以对子目录进行递归了。

代码语言:txt
复制
#查看压缩文件信息
gzip -l *
gzip -l a.gz

代码语言:txt
复制
#检查压缩文件完整性
gzip -tv a.gz

查看压缩文件内容

zcat

zless

less类似。

.bz2

本段涉及到的命令与其常用功能。

命令

常用功能

bzip2

压缩和解压缩

bunzip2

解压缩

bzcat

查看压缩文件内容

bzip2recover

修复损坏的bz2文件

bzip2

代码语言:txt
复制
-c	或	--stdout:将压缩与解压缩的结果送到标准输出;
-d	或	--decompress:执行解压缩;
-f	或	--force:bzip2在压缩或解压缩时,若输出文件与现有文件同名,预设不会覆盖现有文件。若要覆盖。请使用此参数;
-h	或	--help:在线帮助;
-k	或	--keep:bzip2在压缩或解压缩后,会删除原始文件。若要保留原始文件,请使用此参数;
-s	或	--small:降低程序执行时内存的使用量;
-t	或	--test:测试.bz2压缩文件的完整性;
-v	或	--verbose:压缩或解压缩文件时,显示详细的信息;
-z	或	--compress:强制执行压缩;

压缩与解压缩

代码语言:txt
复制
#压缩a文件为a.bz2,并删除a文件
bzip2 a
#压缩a文件为a.bz2,并保留a文件
bzip2 -k a

这里压缩的时候没有标准输出,会将原来的文件a给删除,替换成a.bz2.如果以前有a.bz2则不会替换并提示错误(如果想要替换则指定-f选项,例如bzip2 -f a;如果a是目录则也提醒错误不做任何操作;如果a已经是压过的了有bz2后缀就提醒一下,不再压缩,没有bz2后缀会再次压缩。

代码语言:txt
复制
#解压缩a.bz2为a,并删除a.bz2
bzip2 -d a.bz2
或
bunzip2 a.bz2

#解压缩a.bz2为a,并保留a.bz2
bzip2 -dk a.bz2
或
bunzip2 -k a.bz2

这里,解压的时候没标准输出,会将原来的文件a.bz2给替换成a。如果以前有a则不会替换并提示错误(如果想要替换则指定-f选项,例如bzip2 -df a.bz2

代码语言:txt
复制
#检查压缩文件完整性
bzip2 -tv a.bz2

查看压缩文件内容

bzcat

修复损坏的bz2文件

bzip2recover

代码语言:txt
复制
bzip2recover 损坏的bz2文件名

.xz

本段涉及到的命令与其常用功能。

命令

常用功能

xz

压缩和解压缩

xz

代码语言:txt
复制
root@vm:~# xz --help
用法:xz [选项] ... [文件名] ...
压缩或解压缩 .xz 格式的文件。

  -z, --compress      force compression
  -d, --decompress    force decompression
  -t, --test          测试压缩文件的完整性
  -l, --list          list information about .xz files
  -k, --keep          保留 (不删除) 输入文件
  -f, --force         强制覆盖输出文件并且 (解)压缩链接
  -c, --stdout        输出到标准输出并且不删除输入文件
  -0 ... -9           compression preset; default is 6; take compressor *and*
                      decompressor memory usage into account before using 7-9!
  -e, --extreme       try to improve compression ratio by using more CPU time;
                      does not affect decompressor memory requirements
  -T, --threads=NUM   use at most NUM threads; the default is 1; set to 0
                      to use as many threads as there are processor cores
  -q, --quiet         suppress warnings; specify twice to suppress errors too
  -v, --verbose       be verbose; specify twice for even more verbose
  -h, --help          显示现在这个较短的帮助,然后退出
  -H, --long-help     显示较长的帮助 (也列出高级选项)
  -V, --version       显示版本号,然后退出

如果不给出 FILE,或者 FILE 是 “-”,就从标准输入读取。

压缩与解压缩

代码语言:txt
复制
#压缩a文件为a.bz2,并删除a文件
xz a
或
xz -z a
#压缩a文件为a.bz2,并保留a文件
xz -k a
或
xz -zk a

代码语言:txt
复制
#解压缩a.xz为a,并删除a.xz
xz -d a.xz

#解压缩a.xz为a,并保留a.xz
xz -dk a.xz

.zip

本段涉及到的命令与其常用功能。

命令

常用功能

zip

压缩

unzip

解压缩

zipinfo

列出zip压缩文件的详细信息

zip

代码语言:txt
复制
-A:调整可执行的自动解压缩文件;
-b<工作目录>:指定暂时存放文件的目录;
-c:替每个被压缩的文件加上注释;
-d:从压缩文件内删除指定的文件;
-D:压缩文件内不建立目录名称;
-f:此参数的效果和指定“-u”参数类似,但不仅更新既有文件,如果某些文件原本不存在于压缩文件内,使用本参数会一并将其加入压缩文件中;
-F:尝试修复已损坏的压缩文件;
-g:将文件压缩后附加在已有的压缩文件之后,而非另行建立新的压缩文件;
-h:在线帮助;
-i<范本样式>:只压缩符合条件的文件;
-j:只保存文件名称及其内容,而不存放任何目录名称;
-J:删除压缩文件前面不必要的数据;
-k:使用MS-DOS兼容格式的文件名称;
-l:压缩文件时,把LF字符置换成LF+CR字符;
-ll:压缩文件时,把LF+cp字符置换成LF字符;
-L:显示版权信息;
-m:将文件压缩并加入压缩文件后,删除原始文件,即把文件移到压缩文件中;
-n<字尾字符串>:不压缩具有特定字尾字符串的文件;
-o:以压缩文件内拥有最新更改时间的文件为准,将压缩文件的更改时间设成和该文件相同;
-q:不显示指令执行过程;
-r:递归处理,将指定目录下的所有文件和子目录一并处理;
-S:包含系统和隐藏文件;
-t<日期时间>:把压缩文件的日期设成指定的日期;
-T:检查备份文件内的每个文件是否正确无误;
-u:更换较新的文件到压缩文件内;
-v:显示指令执行过程或显示版本信息;
-V:保存VMS操作系统的文件属性;
-w:在文件名称里假如版本编号,本参数仅在VMS操作系统下有效;
-x<范本样式>:压缩时排除符合条件的文件;
-X:不保存额外的文件属性;
-y:直接保存符号连接,而非该链接所指向的文件,本参数仅在UNIX之类的系统下有效;
-z:替压缩文件加上注释;
-$:保存第一个被压缩文件所在磁盘的卷册名称;
-<压缩效率>:压缩效率是一个介于1~9的数值。

unzip

代码语言:txt
复制
-c:将解压缩的结果显示到屏幕上,并对字符做适当的转换;
-f:更新现有的文件;
-l:显示压缩文件内所包含的文件;
-p:与-c参数类似,会将解压缩的结果显示到屏幕上,但不会执行任何的转换;
-t:检查压缩文件是否正确;
-u:与-f参数类似,但是除了更新现有的文件外,也会将压缩文件中的其他文件解压缩到目录中;
-v:执行时显示详细的信息;
-z:仅显示压缩文件的备注文字;
-a:对文本文件进行必要的字符转换;
-b:不要对文本文件进行字符转换;
-C:压缩文件中的文件名称区分大小写;
-j:不处理压缩文件中原有的目录路径;
-L:将压缩文件中的全部文件名改为小写;
-M:将输出结果送到more程序处理;
-n:解压缩时不要覆盖原有的文件;
-o:不必先询问用户,unzip执行后覆盖原有的文件;
-P<密码>:使用zip的密码选项;
-q:执行时不显示任何信息;
-s:将文件名中的空白字符转换为底线字符;
-V:保留VMS的文件版本信息;
-X:解压缩时同时回存文件原来的UID/GID;
-d<目录>:指定文件解压缩后所要存储的目录;
-x<文件>:指定不要处理.zip压缩文件中的哪些文件;
-Z:unzip-Z等于执行zipinfo指令。

zipinfo

代码语言:txt
复制
-1:只列出文件名称;
-2:此参数的效果和指定“-1”参数类似,但可搭配“-h”,“-t”和“-z”参数使用;
-h:只列出压缩文件的文件名称;
-l:此参数的效果和指定“-m”参数类似,但会列出原始文件的大小而非每个文件的压缩率;
-m:此参数的效果和指定“-s”参数类似,但多会列出每个文件的压缩率;
-M:若信息内容超过一个画面,则采用类似more指令的方式列出信息;
-s:用类似执行“ls-l”指令的效果列出压缩文件内容;
-t:只列出压缩文件内所包含的文件数目,压缩前后的文件大小及压缩率;
-T:将压缩文件内每个文件的日期时间用年,月,日,时,分,秒的顺序列出;
-v:详细显示压缩文件内每一个文件的信息;
-x<范本样式>:不列出符合条件的文件的信息;
-z:如果压缩文件内含有注释,就将注释显示出来。

压缩与解压缩

代码语言:txt
复制
#压缩文件
zip yasuowenjian.zip a b c

代码语言:txt
复制
#压缩目录
zip -qr yasuomulu.zip /home

代码语言:txt
复制
#压缩文件与目录
zip -qr wenjianyumulu.zip /home a b c

代码语言:txt
复制
#在当前目录下解压文件
unzip yasuowenjian.zip

代码语言:txt
复制
#在指定目录下解压文件
unzip yasuowenjian.zip -d /tmp

代码语言:txt
复制
#显示压缩文件内包含的文件
unzip -l yasuowenjian.zip

代码语言:txt
复制
#从压缩文件中删除部分文件
zip -d yasuowenjian.zip a

查看压缩文件信息

代码语言:txt
复制
zipinfo yasuowenjian.zip
或
unzip -Z yasuowenjian.zip

.rar

本段涉及到的命令与其常用功能。

命令

常用功能

rar

压缩和解压缩

unrar

解压缩

压缩与解压缩

代码语言:txt
复制
#压缩文件
rar a test a b c

代码语言:txt
复制
#压缩文件夹
rar a -r testfolder /home

代码语言:txt
复制
#查看压缩文件中的文件
unrar v test.rar

代码语言:txt
复制
#解压到指定文件夹
unrar x test.rar /tmp

.7z

安装p7zip-full。

7z的命令

代码语言:txt
复制
root@vm:~# 7z

7-Zip [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21
p7zip Version 16.02 (locale=zh_CN.UTF-8,Utf16=on,HugeFiles=on,64 bits,2 CPUs Intel(R) Core(TM) i5-9300H CPU @ 2.40GHz (906EA),ASM,AES-NI)

Usage: 7z <command> [<switches>...] <archive_name> [<file_names>...]
       [<@listfiles...>]

<Commands>
  a : Add files to archive
  b : Benchmark
  d : Delete files from archive
  e : Extract files from archive (without using directory names)
  h : Calculate hash values for files
  i : Show information about supported formats
  l : List contents of archive
  rn : Rename files in archive
  t : Test integrity of archive
  u : Update files to archive
  x : eXtract files with full paths

压缩与解压缩

代码语言:txt
复制
#压缩文件/文件夹
7za a -t7z -r Mytest.7z /home

参数含义:

a 代表添加文件/文件夹到压缩包。

-t 是指定压缩类型,这里定为7z,可不指定,因为7za默认压缩类型就是7z。

-r 表示递归所有的子文件夹。

Mytest.7z 是压缩好后的压缩包名。

/home:是压缩目标。

注意:7za不仅仅支持.7z压缩格式,还支持.tar.bz2等压缩类型的。如上所述,用-t指定即可。

代码语言:txt
复制
#解压缩7z文件
7za x Mytest.7z -r -o/root

参数含义:

x 代表解压缩文件,并且是按原始目录树解压(还有个参数 e 也是解压缩文件,但其会将所有文件都解压到根下,而不是自己原有的文件夹下)。

Mytest.7z 是压缩文件,这里默认使用当前目录下的Mytest.7z。

-r 表示递归解压缩所有的子文件夹。

-o 是指定解压到的目录,-o后是没有空格的,直接接目录。这一点需要注意。

参考:

https://www.cnblogs.com/yiwd/p/3649094.html

代码语言:txt
复制
#要查看归档的文件列表,使用 “l” 选项
$ 7z l <archive-filename>

代码语言:txt
复制
#要更新或删除归档文件,分别使用 “u” 和 “d” 选项。
$ 7z u <archive-filename><list-of-files-to-update>
$ 7z d <archive-filename><list-of-files-to-delete>

代码语言:txt
复制
#要测试归档的完整性,使用:
$ 7z t <archive-filename>

参考:

https://www.linuxidc.com/Linux/2015-01/111860.htm

.z

.bz

文件归档

代码语言:txt
复制
root@vm:~# tar --help
用法: tar [选项...] [FILE]...
GNU ‘tar’
将许多文件一起保存至一个单独的磁带或磁盘归档,并能从归档中单独还原所需文件。

示例
  tar -cf archive.tar foo bar  # 从文件 foo 和 bar 创建归档文件archive.tar。
  tar -tvf archive.tar         # 详细列举归档文件 archive.tar中的所有文件。
  tar -xf archive.tar          # 解开归档文件 archive.tar中的所有文件。
……

#常用参数
-z	是否同时具有gz属性
-j	是否同时具有bz2属性
-J	是否同时具有xz属性
-x	解压缩、提取打包的内容
-t	查看压缩包内容
-c	建立一个压缩,打包文档
-C	切换到指定目录,表示指定解压缩包的内容和打包的内容存放的目录
-v	显示压缩或者打包的内容
-f	使用文件名,在f后面要接压缩后的文件的名字,只要用到tar命令,-f选项是必须要用的,-f参数在使用的时候一定排在其他参数的后面,在最右边
-p	保留备份数据的原本权限与属性,常用于备份(-c)重要的配置文件
-P	保留绝对路径

Linux主要有三种压缩方式

  1. gzip:是公认的压缩这速度最快,压缩大文件的时候与其他的压缩方式相比更加明显,历史最久,应用最广泛的压缩方式.
  2. bzip:压缩形成的文件小,但是可用性不如gzip
  3. xz:是最新的压缩方式,可以自动提供最佳的压缩率。

建议的压缩的时候标明后缀

参数

作用

命名方式

-z

用于gzip压缩方式

文件名.tar.gz文件名.tgz

-j

用于bzip2压缩方式

文件名.tar.bz2

-J

用于xz压缩方式

文件名.tar.xz

参考:

https://blog.csdn.net/weixin_44901564/article/details/99682926

.tar

创建归档文件

代码语言:txt
复制
#打包成一个tar文件
tar -cf archive.tar a b c
#添加v选项,可显示打包的文件内容
tar -cvf archivehome.tar /home

列举归档文件内容

代码语言:txt
复制
#列举归档文件archive.tar中的所有文件
tar -tvf archive.tar

解开归档文件

代码语言:txt
复制
#在当前目录解开归档文件archive.tar中的所有文件
tar -xf archive.tar -C
#在指定目录解开归档文件archive.tar中的所有文件,并添加v选项,可显示解包的文件内容
tar -xvf archive.tar -C /tmp

.tar.gz

压缩

代码语言:txt
复制
#创建.tar.gz格式压缩文件
tar -zcf  archive.tar.gz a b c
#添加v选项,可显示打包的文件内容
tar -zcvf archivehome.tar.gz /home

解压缩

代码语言:txt
复制
#解压文件到当前目录
tar -xf archive.tar.gz
#添加v选项,可显示解压的文件内容,使用-C选项可指定解压出来的文件保存的目录
tar -xvf archivehome.tar.gz -C /tmp

新版本tar可自动识别压缩文件格式,故可以不用添加-z参数,下面的.tar.xz.tar.bz2处理方式相同。

代码语言:txt
复制
#下面两条语句等效
tar -xf archive.tar.gz
tar -zxf archive.tar.gz

.tar.xz

压缩

代码语言:txt
复制
#创建.tar.xz格式压缩文件
tar -Jcf  archive.tar.xz a b c
#添加v选项,可显示打包的文件内容
tar -Jcvf archivehome.tar.xz /home

解压缩

代码语言:txt
复制
#解压文件到当前目录
tar -xf archive.tar.xz
#添加v选项,可显示解压的文件内容,使用-C选项可指定解压出来的文件保存的目录
tar -xvf archivehome.tar.xz -C /tmp

新版本tar可自动识别压缩文件格式,所以解压可以不用添加-J参数。

代码语言:txt
复制
#下面两条语句等效
tar -xf archive.tar.xz
tar -Jxf archive.tar.xz

.tar.bz2

压缩

代码语言:txt
复制
#创建.tar.xz格式压缩文件
tar -jcf  archive.tar.bz2 a b c
#添加v选项,可显示打包的文件内容
tar -jcvf archivehome.tar.bz2 /home

解压缩

代码语言:txt
复制
#解压文件到当前目录
tar -xf archive.tar.bz2
#添加v选项,可显示解压的文件内容,使用-C选项可指定解压出来的文件保存的目录
tar -xvf archivehome.tar.bz2 -C /tmp

新版本tar可自动识别压缩文件格式,所以解压可以不用添加-j参数。

代码语言:txt
复制
#下面两条语句等效
tar -xf archive.tar.bz2
tar -jxf archive.tar.bz2

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 常见压缩文件格式
    • .gz
      • 压缩与解压缩
      • 查看压缩文件内容
    • .bz2
      • 压缩与解压缩
      • 查看压缩文件内容
      • 修复损坏的bz2文件
    • .xz
      • 压缩与解压缩
    • .zip
      • 压缩与解压缩
      • 查看压缩文件信息
    • .rar
      • 压缩与解压缩
    • .7z
      • 压缩与解压缩
    • .z
      • .bz
      • 文件归档
        • .tar
          • .tar.gz
            • .tar.xz
              • .tar.bz2
              相关产品与服务
              文件存储
              文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档