本段涉及到的命令与其常用功能。
命令 | 常用功能 |
---|---|
| 压缩和解压缩 |
| 解压缩 |
| 查看压缩文件内容 |
| 查看压缩文本文件内容 |
gzip
-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”参数相同。
#压缩a文件为a.gz,并删除a文件
gzip a
#解压缩a.gz为a,并删除a.gz
gzip -dv a.gz
或
gunzip a.gz
gzip -rv /root/test #递归的压缩目录
gzip -dr /root/test #递归地解压目录
这样,所有/root/test下面的文件都变成了*.gz,目录依然存在只是目录里面的文件相应变成了*.gz.这就是压缩,和打包不同。因为是对目录操作,所以需要加上-r选项,这样也可以对子目录进行递归了。
#查看压缩文件信息
gzip -l *
gzip -l a.gz
#检查压缩文件完整性
gzip -tv a.gz
zcat
zless
与less
类似。
本段涉及到的命令与其常用功能。
命令 | 常用功能 |
---|---|
| 压缩和解压缩 |
| 解压缩 |
| 查看压缩文件内容 |
| 修复损坏的bz2文件 |
bzip2
-c 或 --stdout:将压缩与解压缩的结果送到标准输出;
-d 或 --decompress:执行解压缩;
-f 或 --force:bzip2在压缩或解压缩时,若输出文件与现有文件同名,预设不会覆盖现有文件。若要覆盖。请使用此参数;
-h 或 --help:在线帮助;
-k 或 --keep:bzip2在压缩或解压缩后,会删除原始文件。若要保留原始文件,请使用此参数;
-s 或 --small:降低程序执行时内存的使用量;
-t 或 --test:测试.bz2压缩文件的完整性;
-v 或 --verbose:压缩或解压缩文件时,显示详细的信息;
-z 或 --compress:强制执行压缩;
#压缩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后缀会再次压缩。
#解压缩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
。
#检查压缩文件完整性
bzip2 -tv a.bz2
bzcat
bzip2recover
bzip2recover 损坏的bz2文件名
本段涉及到的命令与其常用功能。
命令 | 常用功能 |
---|---|
| 压缩和解压缩 |
xz
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 是 “-”,就从标准输入读取。
#压缩a文件为a.bz2,并删除a文件
xz a
或
xz -z a
#压缩a文件为a.bz2,并保留a文件
xz -k a
或
xz -zk a
#解压缩a.xz为a,并删除a.xz
xz -d a.xz
#解压缩a.xz为a,并保留a.xz
xz -dk a.xz
本段涉及到的命令与其常用功能。
命令 | 常用功能 |
---|---|
| 压缩 |
| 解压缩 |
| 列出zip压缩文件的详细信息 |
zip
-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
-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
-1:只列出文件名称;
-2:此参数的效果和指定“-1”参数类似,但可搭配“-h”,“-t”和“-z”参数使用;
-h:只列出压缩文件的文件名称;
-l:此参数的效果和指定“-m”参数类似,但会列出原始文件的大小而非每个文件的压缩率;
-m:此参数的效果和指定“-s”参数类似,但多会列出每个文件的压缩率;
-M:若信息内容超过一个画面,则采用类似more指令的方式列出信息;
-s:用类似执行“ls-l”指令的效果列出压缩文件内容;
-t:只列出压缩文件内所包含的文件数目,压缩前后的文件大小及压缩率;
-T:将压缩文件内每个文件的日期时间用年,月,日,时,分,秒的顺序列出;
-v:详细显示压缩文件内每一个文件的信息;
-x<范本样式>:不列出符合条件的文件的信息;
-z:如果压缩文件内含有注释,就将注释显示出来。
#压缩文件
zip yasuowenjian.zip a b c
#压缩目录
zip -qr yasuomulu.zip /home
#压缩文件与目录
zip -qr wenjianyumulu.zip /home a b c
#在当前目录下解压文件
unzip yasuowenjian.zip
#在指定目录下解压文件
unzip yasuowenjian.zip -d /tmp
#显示压缩文件内包含的文件
unzip -l yasuowenjian.zip
#从压缩文件中删除部分文件
zip -d yasuowenjian.zip a
zipinfo yasuowenjian.zip
或
unzip -Z yasuowenjian.zip
本段涉及到的命令与其常用功能。
命令 | 常用功能 |
---|---|
| 压缩和解压缩 |
| 解压缩 |
#压缩文件
rar a test a b c
#压缩文件夹
rar a -r testfolder /home
#查看压缩文件中的文件
unrar v test.rar
#解压到指定文件夹
unrar x test.rar /tmp
安装p7zip-full。
7z的命令
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
#压缩文件/文件夹
7za a -t7z -r Mytest.7z /home
参数含义:
a 代表添加文件/文件夹到压缩包。
-t 是指定压缩类型,这里定为7z,可不指定,因为7za默认压缩类型就是7z。
-r 表示递归所有的子文件夹。
Mytest.7z 是压缩好后的压缩包名。
/home:是压缩目标。
注意:7za不仅仅支持.7z压缩格式,还支持.tar.bz2等压缩类型的。如上所述,用-t指定即可。
#解压缩7z文件
7za x Mytest.7z -r -o/root
参数含义:
x 代表解压缩文件,并且是按原始目录树解压(还有个参数 e 也是解压缩文件,但其会将所有文件都解压到根下,而不是自己原有的文件夹下)。
Mytest.7z 是压缩文件,这里默认使用当前目录下的Mytest.7z。
-r 表示递归解压缩所有的子文件夹。
-o 是指定解压到的目录,-o后是没有空格的,直接接目录。这一点需要注意。
参考:
#要查看归档的文件列表,使用 “l” 选项
$ 7z l <archive-filename>
#要更新或删除归档文件,分别使用 “u” 和 “d” 选项。
$ 7z u <archive-filename><list-of-files-to-update>
$ 7z d <archive-filename><list-of-files-to-delete>
#要测试归档的完整性,使用:
$ 7z t <archive-filename>
参考:
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主要有三种压缩方式
gzip
:是公认的压缩这速度最快,压缩大文件的时候与其他的压缩方式相比更加明显,历史最久,应用最广泛的压缩方式.bzip
:压缩形成的文件小,但是可用性不如gzip
。xz
:是最新的压缩方式,可以自动提供最佳的压缩率。建议的压缩的时候标明后缀
参数 | 作用 | 命名方式 |
---|---|---|
-z | 用于 |
|
-j | 用于 |
|
-J | 用于 |
|
参考:
https://blog.csdn.net/weixin_44901564/article/details/99682926
创建归档文件
#打包成一个tar文件
tar -cf archive.tar a b c
#添加v选项,可显示打包的文件内容
tar -cvf archivehome.tar /home
列举归档文件内容
#列举归档文件archive.tar中的所有文件
tar -tvf archive.tar
解开归档文件
#在当前目录解开归档文件archive.tar中的所有文件
tar -xf archive.tar -C
#在指定目录解开归档文件archive.tar中的所有文件,并添加v选项,可显示解包的文件内容
tar -xvf archive.tar -C /tmp
压缩
#创建.tar.gz格式压缩文件
tar -zcf archive.tar.gz a b c
#添加v选项,可显示打包的文件内容
tar -zcvf archivehome.tar.gz /home
解压缩
#解压文件到当前目录
tar -xf archive.tar.gz
#添加v选项,可显示解压的文件内容,使用-C选项可指定解压出来的文件保存的目录
tar -xvf archivehome.tar.gz -C /tmp
新版本tar可自动识别压缩文件格式,故可以不用添加-z参数,下面的.tar.xz
和.tar.bz2
处理方式相同。
#下面两条语句等效
tar -xf archive.tar.gz
tar -zxf archive.tar.gz
压缩
#创建.tar.xz格式压缩文件
tar -Jcf archive.tar.xz a b c
#添加v选项,可显示打包的文件内容
tar -Jcvf archivehome.tar.xz /home
解压缩
#解压文件到当前目录
tar -xf archive.tar.xz
#添加v选项,可显示解压的文件内容,使用-C选项可指定解压出来的文件保存的目录
tar -xvf archivehome.tar.xz -C /tmp
新版本tar可自动识别压缩文件格式,所以解压可以不用添加-J
参数。
#下面两条语句等效
tar -xf archive.tar.xz
tar -Jxf archive.tar.xz
压缩
#创建.tar.xz格式压缩文件
tar -jcf archive.tar.bz2 a b c
#添加v选项,可显示打包的文件内容
tar -jcvf archivehome.tar.bz2 /home
解压缩
#解压文件到当前目录
tar -xf archive.tar.bz2
#添加v选项,可显示解压的文件内容,使用-C选项可指定解压出来的文件保存的目录
tar -xvf archivehome.tar.bz2 -C /tmp
新版本tar可自动识别压缩文件格式,所以解压可以不用添加-j
参数。
#下面两条语句等效
tar -xf archive.tar.bz2
tar -jxf archive.tar.bz2
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。