常见的压缩命令

gzip

gzip是个使用广泛的压缩程序,文件经它压缩过后,其名称后面会多出".gz"的扩展名。但是他也有显著的缺点,只能压缩单个文件。

[root@localhost b]# ls
a.txt  b.txt  c.txt
#压缩a.txt
[root@localhost b]# gzip a.txt
[root@localhost b]# ls
a.txt.gz  b.txt  c.txt
#读取a.txt.gz中的内容
[root@localhost b]# zcat a.txt.gz 
aaaa
aaaa
aaaa
#解压a.txt.gz
[root@localhost b]# gzip -d a.txt.gz 
[root@localhost b]# ls
a.txt  b.txt  c.txt
#压缩该目录下所有的文件
[root@localhost b]# gzip *
[root@localhost b]# ls
a.txt.gz  b.txt.gz  c.txt.gz
#流重定向
gzip -c test.log >test.log.gz
# -# :压缩等级,-1 最快,但是压缩比最差、-9 最慢,但是压缩比最好!预设是 -6 
gzip -9 文件名

 

tar

tar可以将很多文件打包成为一个文件,同时还可以通过gzip/bzip方式将该文件压缩。

注意:c/x/t仅能存在一个!不可同时存在!因为不可能同时压缩和解压缩。

参数参数说明
-ccreate,新建一个打包文件
-x解压打包文件
-t查看tarfile里面的文件
-z是否用gzip压缩或解压
-j是否用bzip2压缩或解压
-v压缩或解压过程中显示文件,常用,不建议在背景中执行过程
-f使用文件名,f是参数结尾,后面不能再加参数,后跟文件名
-p使用原文件的原来属性(属性不会依据使用者而改变)

-P

可以使用绝对路径来压缩!
-N比后面接的日期(yyyy/mm/dd)还要新的才会被打包进新建的文件中!
--exclude FILE在压缩的过程中,不要将FILE打包

例一:打包和解包(仅打包不解压)

#将文件夹b中的所有文件打包成a.tar
[root@localhost ~]# tar -cvf a.tar b
b/
b/a.txt
b/b.txt
b/c.txt
#删除文件夹b
[root@localhost ~]# rm -rf b
[root@localhost ~]# ls
a.tar
#解压打包文件a.tar
[root@localhost ~]# tar -xvf a.tar 
b/
b/a.txt
b/b.txt
b/c.txt
[root@localhost ~]# ls
a.tar  b

 例二:以gzip格式打包压缩和解压

#以gzip格式打包压缩文件夹b
[root@localhost ~]# tar -zcvf a.tar.gz  b
b/
b/a.txt
b/b.txt
b/c.txt
#查看压缩包内有什么文件
[root@localhost ~]# tar -ztvf a.tar.gz
drwxr-xr-x root/root         0 2020-07-14 18:07 b/
-rw-r--r-- root/root        15 2020-07-14 16:24 b/a.txt
-rw-r--r-- root/root        15 2020-07-14 16:25 b/b.txt
-rw-r--r-- root/root        16 2020-07-14 16:25 b/c.txt
#解压a.tar.gz
[root@localhost ~]# tar -zxvf a.tar.gz
b/
b/a.txt
b/b.txt
b/c.txt

查看可知打包后压缩为10240,压缩后大小为196。

例三:

# 这个 -p 的属性是很重要的,尤其是当您要保留原本档案的属性时!
[root@linux ~]# tar -zcvpf /tmp/etc.tar.gz /etc 
#把2020年7月14日之后的文件打包压缩
[root@localhost ~]# tar -N '2020-07-14' -zvcf b.tar.gz b
tar: 选项 --after-date: 将日期 ‘2020-07-14’ 当作 2020-07-14 00:00:00
b/
b/a.txt
b/b.txt
b/c.txt
b/d.txt
b/e.txt
#我要备份 /home, /etc ,但不要 /home/hydra1 
[root@linux ~]# tar --exclude /home/hydra1 -zcvf myfile.tar.gz /home/* /etc 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值