Linux学习笔记——压缩与解压缩

Linux下有许多压缩文件与解压缩文件的命令,主要包括 gzip、bzip2、tar、rar、zip。


文章目录


gzip

gzip 将文件压缩为 .gz 格式,其指令格式如下:

gzip [选项] 源文件

选项:

  • -c:将压缩数据输出到标准输出中,可以用于保留源文件。
  • -d:解压缩
  • -r:压缩目录(实质是压缩目录下的每一个文件)。

比如我们要压缩 test.txt 文件:

我们可以看到 test.txt 文件被压缩为 test.txt.gz,且 test.txt 文件被删除了。
如果我们想保留 test.txt 文件,可以使用 -c 将压缩数据输出到标准输出中,再使用 > 重定向至 test.txt.gz

需要注意的是,gzip 无法打包文件,所以即使是压缩目录,也只是分别压缩目录下的每一个文件:

解压缩文件,即可以使用 -d 参数,可以使用 gunzip 命令:


bzip2

bzip2 用于将文件压缩为 .bz2 格式,理论上讲,.bz2 格式的压缩算法更先进、压缩比更好,而 .gz 格式相对来讲压缩时间更快。

bzip2 指令格式如下:

bzip2 [选项] 源文件

选项:

  • -d:解压缩
  • -k:压缩时保留源文件
  • -v:显示压缩的详细信息

比如我们需要压缩 test.txt 并保留源文件:

这个命令不能压缩目录,否则会报错。

即可以使用 bzip2 -d 解压缩,也可以使用 bunzip2 解压缩:


tar

tar 如果不加特殊选项只是对文件进行打包(并不压缩),其指令格式如下:

tar [选项] [-f 压缩包名] 源文件或目录

选项:

  • -c:打包;
  • -f:指定压缩包的文件名。压缩包的扩展名是用来给管理员识别格式的,所以一定要正确指定扩展名;
  • -v:显示打包文件的过程;
  • -x:解打包。

比如我们要将 a.txtb.txtc.txt 打包成 test.tar

如果我们要解打包 test.tar

我们可以添加特别选项来进行压缩:

  • -z:压缩和解压缩 .tar.gz 格式;
  • -j:压缩和解压缩 .tar.bz2 格式。

默认解压到当前目录,我们可以使用 -C 指定解压的目录。

# 压缩
[root@hepingfly hepingfly]# tar -jcvf test.gz.bz2 abd.txt bcd.txt 
abd.txt
bcd.txt
[root@hepingfly hepingfly]# ll
总用量 24
-rw-r--r--. 1 root      root        160 225 23:11 test.gz.bz2
---------------------------------------------------------------
# 解压缩
[root@hepingfly hepingfly]# tar -jxvf test.gz.bz2 
abd.txt
bcd.txt
----------------------------------------------------------------
# 压缩
[root@hepingfly hepingfly]# tar -zcvf test.tar.gz abd.txt bcd.txt 
abd.txt
bcd.txt
[root@hepingfly hepingfly]# ll
总用量 12
-rw-r--r--. 1 root      root         0 222 02:09 abd.txt
-rw-------. 1 hepingfly hepingfly    0 221 00:37 bcd.txt
-rw-r--r--. 1 root      root       154 225 23:14 test.tar.gz
----------------------------------------------------------------
# 解压缩
[root@hepingfly hepingfly]# tar -zxvf test.tar.gz 
abd.txt
bcd.txt

--------------------------------------------------------------
# 只查看不解压
[root@hepingfly hepingfly]# tar -ztvf test.tar.gz 
-rw-r--r-- root/root         0 2019-02-22 02:09 abd.txt
-rw------- hepingfly/hepingfly 0 2019-02-21 00:37 bcd.txt

--------------------------------------------------------------
# 解压到指定目录(-C 一定要跟在压缩包后面)
[root@hepingfly hepingfly]# tar -zxvf test.tar.gz -C aaaa/
abd.txt
bcd.txt

--------------------------------------------------------------
# 解压指定文件
[root@hepingfly hepingfly]# tar -ztvf test.tar.gz         # 我先查看这个压缩包里面有哪些文件
-rw-r--r-- root/root         0 2019-02-22 02:09 abd.txt
-rw------- hepingfly/hepingfly 0 2019-02-21 00:37 bcd.txt
[root@hepingfly hepingfly]# tar -zxvf test.tar.gz -C aaaa/ abd.txt 
abd.txt
# 我只把 abd.txt 文件解压到 aaaa 目录下

rar

.rar 是 Windows 中常见的压缩格式,Linux 也可正确识别 .rar 格式,这可以方便和 Windows 系统通用压缩文件,其指令格式如下:

rar a 生成文件名 源文件或源目录 # 压缩文件
rar x 压缩包 指定目录 # 解压文件

需要注意的是,Linux不自带 rar 压缩工具,需要自己下载安装:

sudo apt install rar

比如我们要压缩文件 a.txtb.txtc.txttest.rar

解压缩 test.rar~/Desktop


zip

.zip 也是 Windows 中最常用的压缩格式,Linux 也可正确识别 .zip 格式,这可以方便和 Windows 系统通用压缩文件,其指令格式如下:

zip [选项] 压缩包名 源文件或源目录	

选项:

  • -r:压缩目录。

比如我们要将 a.txtb.txtc.txt 压缩为 test.zip 文件:

这里的 stored 0% 表示没有进行压缩,因为 *.txt 文件里什么都没有,如果压缩可能会导致文件更大,正常压缩会出现 deflated xx% 表示压缩率为 xx%,即压缩后的文件大小是原文件的 (100-xx)%

可以使用 unzip 命令解压缩 .zip 格式文件,其指令格式如下:

unzip [选项] 压缩包名

选项:
-d:指定压缩位置。

比如,我们想解压缩 test.zip~/Desktop 下:
在这里插入代码片

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值