学习linux 8

学习linux文件压缩打包

一 压缩和打包介绍

常见的压缩文件

windows .rar .zip .7z
linux .zip .gz .bz2 .xz .tar .gz .tar.bz2 .tar.xz

压缩文件可以节省空间 节省传输时间和带宽

二 gizp压缩工具

gzip 实验 gizp不能压缩目录
在/tmp/下创建一个文件d6z,然后查找conf文件将文件追加到1.txt中

[root@qklinux-01 ~]# cd /tmp/
[root@qklinux-01 tmp]# mkdir d6z
[root@qklinux-01 tmp]# cd d6z/
[root@qklinux-01 d6z]# find /etc/ -type f -name "*conf" -exec cat {} >> 1.txt \;
[root@qklinux-01 d6z]# ls
1.txt
[root@qklinux-01 d6z]# du -sh 1.txt
236K	1.txt

多次追加 并查看文件大小

[root@qklinux-01 d6z]# find /etc/ -type f -name "*conf" -exec cat {} >> 1.txt \;
[root@qklinux-01 d6z]# du -sh 1.txt
704K	1.txt
[root@qklinux-01 d6z]# find /etc/ -type f -name "*conf" -exec cat {} >> 1.txt \;
[root@qklinux-01 d6z]# find /etc/ -type f -name "*conf" -exec cat {} >> 1.txt \;
[root@qklinux-01 d6z]# du -sh 1.txt
1.2M	1.txt
[root@qklinux-01 d6z]# find /etc/ -type f -name "*conf" -exec cat {} >> 1.txt \;
[root@qklinux-01 d6z]# find /etc/ -type f -name "*conf" -exec cat {} >> 1.txt \;
[root@qklinux-01 d6z]# find /etc/ -type f -name "*conf" -exec cat {} >> 1.txt \;
[root@qklinux-01 d6z]# find /etc/ -type f -name "*conf" -exec cat {} >> 1.txt \;
[root@qklinux-01 d6z]# du -sh 1.txt
2.2M	1.txt

压缩文件 查看文件大小

[root@qklinux-01 d6z]# gzip 1.txt
[root@qklinux-01 d6z]# ls
1.txt.gz
[root@qklinux-01 d6z]# du -sh 1.txt.gz
496K	1.txt.gz

解压文件命令gzip -d 1.txt.gz或者gunzip 1.txt.gz
gzip – 数字(数字范围1-9) 表示压缩等级 1为压缩效率最低 9最高 默认为6
[root@qklinux-01 d6z]# gzip -d 1.txt.gz
[root@qklinux-01 d6z]# du -sh 1.txt
1.9M 1.txt
[root@qklinux-01 d6z]# gzip -1 1.txt
[root@qklinux-01 d6z]# du -sh 1.txt.gz
580K 1.txt.gz
[root@qklinux-01 d6z]# gunzip 1.txt.gz
[root@qklinux-01 d6z]# ls

  1. txt
    查看压缩文件内容

zcat 1.txt.gz

压缩文件 并指定目录

[root@qklinux-01 d6z]# gzip -c 1.txt > /tmp/1.txt.gz
[root@qklinux-01 d6z]# ls
1.txt
[root@qklinux-01 d6z]# ls /tmp/1.txt.gz
/tmp/1.txt.gz
[root@qklinux-01 d6z]# file !$
file /tmp/1.txt.gz
/tmp/1.txt.gz: gzip compressed data, was "1.txt", from Unix, last modified: Tue Mar 26 12:36:42 2019

解压文件 并指定目录

[root@qklinux-01 d6z]# gzip -d -c /tmp/1.txt.gz > /tmp/d6z/2.txt
[root@qklinux-01 d6z]# ls
1.txt  2.txt
[root@qklinux-01 d6z]# wc -l 1.txt 2.txt
  48136 1.txt
  48136 2.txt
  96272 总用量

三.bzip2压缩工具

安装bzip2 yum install -y bzip2

压缩文件

[root@qklinux-01 d6z]# bzip2 1.txt
[root@qklinux-01 d6z]# ls
1.txt.bz2  2.txt
[root@qklinux-01 d6z]# du -sh 1.txt.bz2
184K	1.txt.bz2

同样的两种解压方式bzip2 -d 1.txt.bz2或bunzip2 1.txt.bz2

[root@qklinux-01 d6z]# bzip2 -d 1.txt.bz2
[root@qklinux-01 d6z]# ls
1.txt  2.txt
[root@qklinux-01 d6z]# bzip2 1.txt
[root@qklinux-01 d6z]# bunzip2 1.txt.bz2
[root@qklinux-01 d6z]# ls
1.	txt  2.txt

压缩文件并指定目录

[root@qklinux-01 d6z]# bzip2 -c 1.txt > /tmp/1.txt.bz2
[root@qklinux-01 d6z]# du -sh /tmp/1.txt.bz2
184K	/tmp/1.txt.bz2

解压文件 并指定路径

[root@qklinux-01 d6z]# bzip2 -d -c /tmp/1.txt.bz2 > 3.txt
[root@qklinux-01 d6z]# ls
1.	txt  2.txt  3.txt

也可以使用bzcat 1.txt.bz2 查看bzip2压缩包内容
bzip2压缩级别1-9 ,默认级别是9 同样的也不能压缩目录

file命令用来探测给定文件的类型

[root@qklinux-01 d6z]# file 1.txt.bz2
1.	txt.bz2: bzip2 compressed data, block size = 900k

四 .xz压缩工具

xz和gzip bzip2用法类似 压缩级别1-9默认是6 也不能压缩目录
使用xz压缩文件

[root@qklinux-01 d6z]# xz 2.txt
[root@qklinux-01 d6z]# du -sh 2.txt.xz
56K	2.txt.xz

同样支持xz –d和unxz解压文件

[root@qklinux-01 d6z]# ls
1.txt.bz2  2.txt.xz  3.txt
[root@qklinux-01 d6z]# xz -d 2.txt.xz
[root@qklinux-01 d6z]# ls
1.	txt.bz2  2.txt  3.txt
[root@qklinux-01 d6z]# xz 2.txt
[root@qklinux-01 d6z]# unxz 2.txt.xz
[root@qklinux-01 d6z]# ls 
1.	txt.bz2  2.txt  3.txt

压缩文件并指定目录 保留原文件

[root@qklinux-01 d6z]# xz -c 2.txt > /tmp/2.txt.xz
[root@qklinux-01 d6z]# du -sh /tmp/2.txt.xz
56K	/tmp/2.txt.xz

解压文件并指定目录 保留原文件

[root@qklinux-01 d6z]# xz -d -c /tmp/2.txt.xz > ./4.txt
[root@qklinux-01 d6z]# ls
1.	txt.bz2  2.txt  3.txt  4.txt

xzcat 查看xz压缩内容

xzcat /tmp/2.txt.xz

五. zip压缩工具

zip压缩工具可以压缩目录和文件 zip压缩完原来文件不删除

安装zip文件包 # yum install -y zip

压缩文件2.txt

[root@qklinux-01 d6z]# ls
1.txt.bz2  2.txt  3.txt  4.txt  qkailinux
[root@qklinux-01 d6z]# zip 2.txt.zip 2.txt
adding: 2.txt (deflated 74%)
[root@qklinux-01 d6z]# ls
1.	txt.bz2  2.txt  2.txt.zip  3.txt  4.txt  qkailinux

压缩目录 使用zip –r选项 也可以同时压缩目录和文件

[root@qklinux-01 d6z]# ls
1.txt.bz2  2.txt  2.txt.zip  3.txt  4.txt  qkailinux
[root@qklinux-01 d6z]# zip -r  qkai.zip 3.txt qkailinux
  adding: 3.txt (deflated 74%)
  adding: qkailinux/ (stored 0%)
  adding: qkailinux/2/ (stored 0%)
  adding: qkailinux/2/4.txt (deflated 74%)
  adding: qkailinux/qkai2/ (stored 0%)
  adding: qkailinux/qkai2/2/ (stored 0%)
  adding: qkailinux/qkai2/qkai1/ (stored 0%)
  adding: qkailinux/qkai2/qkai1/2/ (stored 0%)
  adding: qkailinux/qkai2/qkai1/qkailinux/ (stored 0%)
  adding: qkailinux/qkai2/qkai1/qkailinux/2/ (stored 0%)
[root@qklinux-01 d6z]# ls
1.txt.bz2  2.txt.zip  4.txt      qkai.zip
2.txt      3.txt      qkailinux

zip解压文件或者目录unzip 需要先安装 yum install -y unzip

解压qkai.zip
解压文件中 由于zip压缩不删除原来的文件,所以解压时会提示替换覆盖

[root@qklinux-01 d6z]# unzip qkai.zip
Archive:  qkai.zip
replace 3.txt? [y]es, [n]o, [A]ll, [N]one, [r]ename: n
replace qkailinux/2/4.txt? [y]es, [n]o, [A]ll, [N]one, [r]ename: y
  inflating: qkailinux/2/4.txt

解压文件到指定目录(zip解压文件不能指定文件名字,压缩前解压后文件名一致)

[root@qklinux-01 d6z]# mkdir test
[root@qklinux-01 d6z]# unzip 2.txt.zip -d test/
Archive:  2.txt.zip
  inflating: test/2.txt  

zip工具只能查看文件列表 不能查看文件内容 unzip -l qkai.zip

[root@qklinux-01 d6z]# unzip -l qkai.zip
Archive:  qkai.zip
  Length      Date    Time    Name
  1930616  03-27-2019 15:12   3.txt
        0  03-27-2019 16:03   qkailinux/
        0  03-27-2019 16:04   qkailinux/2/
  1930616  03-27-2019 16:04   qkailinux/2/4.txt
        0  03-27-2019 16:03   qkailinux/qkai2/
        0  03-27-2019 16:03   qkailinux/qkai2/2/
        0  03-27-2019 16:03   qkailinux/qkai2/qkai1/
        0  03-27-2019 16:03   qkailinux/qkai2/qkai1/2/
        0  03-27-2019 16:03   qkailinux/qkai2/qkai1/qkailinux/
        0  03-27-2019 16:03   qkailinux/qkai2/qkai1/qkailinux/2/
---------                     -------
  3861232                     10 files

六 . tar打包

tar命令是把很多目录打包成一个文件 方便传输 移动
tar打包一个目录 如果文件已经打包 再次打包会直接覆盖文件,不会有提示 tar也同时支持目录和文件一起打包

 [root@qklinux-01 d6z]# tar -cvf qkailinux.tar qkailinux/
qkailinux/
qkailinux/2/
qkailinux/2/4.txt
qkailinux/qkai2/
qkailinux/qkai2/2/
qkailinux/qkai2/qkai1/
qkailinux/qkai2/qkai1/2/
qkailinux/qkai2/qkai1/qkailinux/
qkailinux/qkai2/qkai1/qkailinux/2/
[root@qklinux-01 d6z]# ls
1.txt.bz2  2.txt.zip  4.txt      qkailinux.tar  test
2.txt      3.txt      qkailinux  qkai.zip
[root@qklinux-01 d6z]# tar -cvf qkailinux.tar qkailinux 3.txt 4.txt
qkailinux/
qkailinux/2/
qkailinux/2/4.txt
qkailinux/qkai2/
qkailinux/qkai2/2/
qkailinux/qkai2/qkai1/
qkailinux/qkai2/qkai1/2/
qkailinux/qkai2/qkai1/qkailinux/
qkailinux/qkai2/qkai1/qkailinux/2/
3.txt
4.txt

tar 解包文件

[root@qklinux-01 d6z]# tar -xvf qkailinux.tar
qkailinux/
qkailinux/2/
qkailinux/2/4.txt
qkailinux/qkai2/
qkailinux/qkai2/2/
qkailinux/qkai2/qkai1/
qkailinux/qkai2/qkai1/2/
qkailinux/qkai2/qkai1/qkailinux/
qkailinux/qkai2/qkai1/qkailinux/2/

tar查看打包的文件列表

[root@qklinux-01 d6z]# tar -tf qkailinux.tar
qkailinux/
qkailinux/2/
qkailinux/2/4.txt
qkailinux/qkai2/
qkailinux/qkai2/2/
qkailinux/qkai2/qkai1/
qkailinux/qkai2/qkai1/2/
qkailinux/qkai2/qkai1/qkailinux/
qkailinux/qkai2/qkai1/qkailinux/2/
3.txt
4.txt

tar过滤指定的文件进行打包
exclude支持多个文件过滤 比如过滤所有txt文件“*.txt””

[root@qklinux-01 d6z]# tar -cvf qkailinux.tar --exclude qkai1 qkailinux 3.txt 4.txt
qkailinux/
qkailinux/2/
qkailinux/2/4.txt
qkailinux/qkai2/
qkailinux/qkai2/2/
3.txt
4.txt
[root@qklinux-01 d6z]# tar -cvf qkailinux.tar --exclude qkai1 --exclude "*.txt" qkailinux 3.txt 4.txt
qkailinux/
qkailinux/2/
qkailinux/qkai2/
qkailinux/qkai2/2/

七 打包并压缩

tar打包的同时可以用gzip压缩 加上-z解包时把选项-c换成-x

[root@qklinux-01 d6z]# tar -czvf qkailinux.tar.gz qkailinux 3.txt 4.txt
qkailinux/
qkailinux/2/
qkailinux/2/4.txt
qkailinux/qkai2/
qkailinux/qkai2/2/
qkailinux/qkai2/qkai1/
qkailinux/qkai2/qkai1/2/
qkailinux/qkai2/qkai1/qkailinux/
qkailinux/qkai2/qkai1/qkailinux/2/
3.txt
4.txt
[root@qklinux-01 d6z]# du -sh qkailinux.tar.gz
1.5M	qkailinux.tar.gz

tar打包同时使用bzip2压缩 加上-j解包时把选项-c换成-x

[root@qklinux-01 d6z]# tar -cjvf qkailinux.tar.bz2 qkailinux 3.txt 4.txt
qkailinux/
qkailinux/2/
qkailinux/2/4.txt
qkailinux/qkai2/
qkailinux/qkai2/2/
qkailinux/qkai2/qkai1/
qkailinux/qkai2/qkai1/2/
qkailinux/qkai2/qkai1/qkailinux/
qkailinux/qkai2/qkai1/qkailinux/2/
3.txt
4.txt
[root@qklinux-01 d6z]# du -sh qkailinux.tar.bz2
536K	qkailinux.tar.bz2

tar打包同时使用xz压缩, 加-J选项解包时把选项-c换成-x

[root@qklinux-01 d6z]# tar -cJvf qkailinux.tar.xz qkailinux 3.txt 4.txt
qkailinux/
qkailinux/2/
qkailinux/2/4.txt
qkailinux/qkai2/
qkailinux/qkai2/2/
qkailinux/qkai2/qkai1/
qkailinux/qkai2/qkai1/2/
qkailinux/qkai2/qkai1/qkailinux/
qkailinux/qkai2/qkai1/qkailinux/2/
3.txt
4.txt
[root@qklinux-01 d6z]# du -sh qkailinux.tar.xz
60K	qkailinux.tar.xz

查看文件列表

tar -tf qkailinux.tar.xz(gz  bz2  )
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值