Linux压缩解压常用命令

打包/压缩/查看/解包/解压

(1)tar

注:根据https://www.cnblogs.com/yhongji/p/9348487.html整理。

功能:

1)将多个文件打包为一个文件 -cvf;

2)将文件打包并压缩 -zcvf;

3)将打包的文件解包 -xvf;

4)将打包压缩的文件解压 -zxvf;

A. 用法

tar [选项] [文件…]

B. 命令选项

-A, --catenate       追加 tar 文件至归档
-c, --create      创建一个新归档
-r, --append      追加文件至归档结尾
-u, --update     仅追加比归档中副本更新的文件
-x, --extract, --get      从归档中解出文件
-t, --list       列出归档内容
-z, --gzip, --gunzip, --ungzip 通过 gzip 压缩归档
-j, --bzip2    通过 bzip2 压缩归档
-J, --xz      通过 xz 过滤归档
–lzip       通过 lzip 过滤归档
–lzma     通过 lzma 过滤归档
-Z, --compress, --uncompress 通过 compress 压缩归档
-v, --verbose   详细地列出处理的文件过程
-k, --keep-old-files     保留源文件不覆盖
-m, --touch    不要解压文件的修改时间
-W, --verify     在写入以后尝试校验归档
f, --file=ARCHIVE   使用归档文件或 ARCHIVE 设备,这个参数是最后一个,后面只接文件名
-b, --blocking-factor=BLOCKS 设置每个记录 BLOCKS x 512 字节
-C, --directory=DIR   改变至目录 DIR
–help          显示帮助信息
–version         显示版本信息

C. 实例

① 打包:将 1.txt 2.txt 3.txt 4.txt 文件打包为 test.tar

[root@mini ~]# ls
1.txt  2.txt  3.txt  4.txt  anaconda-ks.cfg
[root@mini ~]# tar -cvf test.tar *.txt
1.txt
2.txt
3.txt
4.txt
[root@mini ~]# ls
1.txt  2.txt  3.txt  4.txt  anaconda-ks.cfg  test.tar

② 打包+压缩:将 1.txt 2.txt 3.txt 4.txt 文件打包并压缩为 test.tar.gz

[root@mini ~]# ls
1.txt  2.txt  3.txt  4.txt  anaconda-ks.cfg  test.tar
[root@mini ~]# tar -zcvf test.tar.gz *.txt
1.txt
2.txt
3.txt
4.txt
[root@mini ~]# ls
1.txt  2.txt  3.txt  4.txt  anaconda-ks.cfg  test.tar  test.tar.gz

③ 打包+压缩:将 1.txt 2.txt 3.txt 4.txt 文件打包并压缩为 test.tar.bz2

[root@mini ~]# ls
1.txt  2.txt  3.txt  4.txt  anaconda-ks.cfg  test.tar  test.tar.gz
[root@mini ~]# tar -jcvf test.tar.bz2 *.txt
1.txt
2.txt
3.txt
4.txt
[root@mini ~]# ls
1.txt  2.txt  3.txt  4.txt  anaconda-ks.cfg  test.tar  test.tar.bz2  test.tar.gz

④ 列出:列出 test.tar 里的文件

[root@mini ~]# tar -tf test.tar
1.txt
2.txt
3.txt
4.txt

⑤ 解包:将 test.tar 解包

[root@mini ~]# ls
anaconda-ks.cfg  test.tar  test.tar.bz2  test.tar.gz
[root@mini ~]# tar -xvf test.tar
1.txt
2.txt
3.txt
4.txt
[root@mini ~]# ls
1.txt  2.txt  3.txt  4.txt  anaconda-ks.cfg  test.tar  test.tar.bz2  test.tar.gz

⑥ 解压:将 test.tar.gz 解压

[root@mini ~]# ls
anaconda-ks.cfg  test.tar  test.tar.bz2  test.tar.gz
[root@mini ~]# tar -zxvf test.tar.gz 
1.txt
2.txt
3.txt
4.txt
[root@mini ~]# ls
1.txt  2.txt  3.txt  4.txt  anaconda-ks.cfg  test.tar  test.tar.bz2  test.tar.gz

⑦ 解压:将 test.tar.bz2 解压

[root@mini ~]# ls
anaconda-ks.cfg  test.tar  test.tar.bz2  test.tar.gz
[root@mini ~]# tar -jxvf test.tar.bz2 
1.txt
2.txt
3.txt
4.txt
[root@mini ~]# ls
1.txt  2.txt  3.txt  4.txt  anaconda-ks.cfg  test.tar  test.tar.bz2  test.tar.gz

(2)zip与unzip

注:根据https://www.runoob.com/linux/linux-comm-zip.html及https://blog.csdn.net/qq_27870421/article/details/92623897整理。

zip 是个使用广泛的压缩程序,压缩后的文件后缀名为 .zip。

unzip为.zip压缩文件的解压缩程序。

A. 命令选项

About zip:

-A 调整可执行的自动解压缩文件。

-b<工作目录> 指定暂时存放文件的目录。

-c 替每个被压缩的文件加上注释。

-d 从压缩文件内删除指定的文件。

-D 压缩文件内不建立目录名称。

-f 更新现有的文件。

-F 尝试修复已损坏的压缩文件。

-g 将文件压缩后附加在既有的压缩文件之后,而非另行建立新的压缩文件。

-h 在线帮助。

-i<范本样式> 只压缩符合条件的文件。

-j 只保存文件名称及其内容,而不存放任何目录名称。

-J 删除压缩文件前面不必要的数据。

-k 使用MS-DOS兼容格式的文件名称。

-l 压缩文件时,把LF字符置换成LF+CR字符。

-ll 压缩文件时,把LF+CR字符置换成LF字符。

-L 显示版权信息。

-m 将文件压缩并加入压缩文件后,删除原始文件,即把文件移到压缩文件中。

-n<字尾字符串> 不压缩具有特定字尾字符串的文件。

-o 以压缩文件内拥有最新更改时间的文件为准,将压缩文件的更改时间设成和该文件相同。

-q 不显示指令执行过程。

-r 递归处理,将指定目录下的所有文件和子目录一并处理。

-S 包含系统和隐藏文件。

-t<日期时间> 把压缩文件的日期设成指定的日期。

-T 检查备份文件内的每个文件是否正确无误。

-u 与 -f 参数类似,但是除了更新现有的文件外,也会将压缩文件中的其他文件解压缩到目录中。

-v 显示指令执行过程或显示版本信息。

-V 保存VMS操作系统的文件属性。

-w 在文件名称里假如版本编号,本参数仅在VMS操作系统下有效。

-x<范本样式> 压缩时排除符合条件的文件。

-X 不保存额外的文件属性。

-y 直接保存符号连接,而非该连接所指向的文件,本参数仅在UNIX之类的系统下有效。

-z 替压缩文件加上注释。

-$ 保存第一个被压缩文件所在磁盘的卷册名称。

-<压缩效率> 压缩效率是一个介于1-9的数值。

About 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。

[.zip文件] 指定.zip压缩文件。

[文件] 指定要处理.zip压缩文件中的哪些文件。

-d<目录> 指定文件解压缩后所要存储的目录。

-x<文件> 指定不要处理.zip压缩文件中的哪些文件。

-Z unzip -Z等于执行zipinfo指令。

B. 实例

① 打包压缩:将 /home/html/ 这个目录下所有文件和文件夹打包为当前目录下的 html.zip:

zip -q -r html.zip /home/html

如果在我们在 /home/html 目录下,可以执行以下命令:

zip -q -r html.zip *

② 删除文件:从压缩文件 cp.zip 中删除文件 a.c

zip -dv cp.zip a.c

③ 查看压缩文件中包含的文件:

# unzip -l abc.zip 
Archive: abc.zip
 Length   Date  Time  Name
--------  ----  ----  ----
  94618 05-21-10 20:44  a11.jpg
  202001 05-21-10 20:44  a22.jpg
    16 05-22-10 15:01  11.txt
  46468 05-23-10 10:30  w456.JPG
  140085 03-14-10 21:49  my.asp
--------          -------
  483188          5 files

④ -v 参数用于查看压缩文件目录信息,但是不解压该文件。

# unzip -v abc.zip 
Archive: abc.zip
Length  Method  Size Ratio  Date  Time  CRC-32  Name
-------- ------ ------- -----  ----  ----  ------  ----
  94618 Defl:N  93353  1% 05-21-10 20:44 9e661437 a11.jpg
 202001 Defl:N  201833  0% 05-21-10 20:44 1da462eb a22.jpg
   16 Stored    16  0% 05-22-10 15:01 ae8a9910 ? +-|¥+-? (11).txt
  46468 Defl:N  39997 14% 05-23-10 10:30 962861f2 w456.JPG
 140085 Defl:N  36765 74% 03-14-10 21:49 836fcc3f my.asp
--------     ------- ---              -------
 483188      371964 23%              5 files

⑤ 解压

unzip test.zip 				->将test.zip解压到当前文件下
unzip -n test.zip -d tmp/ 	->将test.zip解压到/tmp目录下,并且不要覆盖已有文件
unzip -o test.zip -d tmp/	->将test.zip解压到/tmp目录下,并且覆盖已有文件

(3)rar

正常rar是windows下的压缩文件,linux是不支持的。但是可以通过安装rarlinux来使用rar命令解压rar文件。

将/etc 目录压缩为etc.rar 命令为:

rar a etc.rar /etc

将etc.rar 解压 命令为:

rar x etc.rar
或
unrar -e etc.tar
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值