第九节 文件的归档和压缩
9.1 tar命令进行文件的归档和压缩
在日常使用windows操作系统常用压缩软件是winrar或是360压缩等
在linux中有免费更加方便的压缩工具,下面我们一起了解一下吧
9.1.1 tar命令的常用方法
常用打包压缩的软件
zip 压缩包扩展名是.gz
bzip2 压缩包扩展名是.bz2
xz 压缩包扩展名是.xz
1)从压缩比率来说:
xz > bzip2 > gz
也就是相同文件或文件夹最后生成压缩文件大小
2)从压缩时间来说:
xz > bzip2 > gz
压缩越小耗费的时间越多
zip最小化安装的时候自带,bzip2与xz需要安装
[root@node-1 ~]# yum -y install bzip2 xz
RHCSA有道题目就是考查tar+bzip2结合使用
9.1.2压缩文件
-c:创建
-v:显示详细信息
-f:后面跟保存文件名与路径
-z:使用zip来压缩
-j:使用bzip2来压缩
-J:使用xz来压缩
例1:压缩/etc目录以达到备份的目的
加入time参数可以更直观看到压缩时间
[root@node-1 ~]# time tar -zcvf /opt/etc.tar.gz /etc/
real 0m2.076s
user 0m0.759s
sys 0m1.373s

[root@node-1 ~]# time tar -jcvf /opt/etc.tar.bz2 /etc/
real 0m4.767s
user 0m3.906s
sys 0m1.050s

[root@node-1 ~]# time tar -Jcvf /opt/etc.tar.xz /etc/
real 0m20.423s
user 0m17.309s
sys 0m3.623s
从上面可以清楚看到时间上的不同

[root@node-1 ~]# ll -h /opt
total 28M
-rw-r--r-- 1 root root 9.4M Feb 15 19:38 etc.tar.bz2
-rw-r--r-- 1 root root 11M Feb 15 19:37 etc.tar.gz
-rw-r--r-- 1 root root 7.7M Feb 15 19:39 etc.tar.xz
从上面可以清楚看到压缩比率的不同

9.1.3 解压文件
-x :解压文件,默认是当前目录
-C 目录 :解压文件到特定目录
例2:解压文件
[root@node-1 opt]# tar -zxvf etc.tar.gz
[root@node-1 opt]# tar -zxvf etc.tar.gz -C /root/

在不完成解压缩的过程也可以直接查看
-t:不解压查看压缩后文件内容

9.2 其他类型文件管理
9.2.1file命令的使用
file命令的作用是确定文件类型
用法:file 文件名
注:windows当中以缀名来确定文件类型;linux系统不根据后缀名识别文件类型
用file命令查看文件的类型
例3:用法说明
[root@node-1 opt]# file /etc/passwd /opt/etc.tar.gz
/etc/passwd: ASCII text
/opt/etc.tar.gz: gzip compressed data, from Unix, last modified: Sat Feb 15 19:37:24 2020
9.2.2 按一定规则排序查看文件
查看文件:加不同参数可以根据不同需求查看文件
-l:长列表形式显示
-t:按时间从新到旧的方式排序
-r:倒序排列,默认是由大到小排列加-r参数后就是从小到大排列
-S:以文件大小从大到小排列
-h:以人类可以看懂的方式排列
例4:各种参数的组合使用
[root@node-1 opt]# df -hT
Filesystem Type Size Used Avail Use% Mounted on
devtmpfs devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs tmpfs 1.9G 12M 1.9G 1% /run
tmpfs tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/mapper/centos-root xfs 18G 1.9G 16G 11% /
/dev/sda1 xfs 497M 141M 357M 29% /boot
tmpfs tmpfs 378M 0 378M 0% /run/user/0

[root@node-1 opt]# du -sh /opt/
64M /opt/

[root@node-1 opt]# ll -Shr /etc
只留下最后几行说明一下效果
-rw-r--r-- 1 root root 7.2K Feb 13 16:05 kdump.conf
-rw-r--r--. 1 root root 12K Feb 14 01:20 aliases.db
-rw-r--r-- 1 root root 26K Feb 13 16:07 ld.so.cache
-rw-r--r-- 1 root root 27K Oct 19 00:01 dnsmasq.conf
-rw-r--r-- 1 root root 655K Jun 7 2013 services
9.2.3sort命令的常用方法
sort作用是以特定顺序查看文件内容,不加参数默认按字母规则进行排序
-n:按照数字大小排列
-r:按照倒序进行排列
-t:指定间隔字符
-k:后面跟数字,间隔字符分开的第几列
例5:
[root@node-1 opt]# sort passwd
adm:x:3:4:adm:/var/adm:/sbin/nologin
bin:x:1:1:bin:/bin:/sbin/nologin
....
wangtao:x:1000:1000::/home/wangtao:/bin/bash
wt:x:1101:1101::/opt/wt:/bin/bash

[root@node-1 opt]# cp /etc/passwd .
[root@node-1 opt]# sort -t ":" -k3 -n -r passwd
oracle:x:1200:1100::/opt/oracle:/bin/bash
marry:x:1102:1100::/home/marry:/bin/bash
wt:x:1101:1101::/opt/wt:/bin/bash
......
说明:以:为间隔符,对第三列按从小到大的顺序显示,不加参数n会在比较大小时遇到问题
如:
[root@node-1 opt]# sort -t ":" -k3 -r passwd
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-bus-proxy:x:999:997:systemd Bus Proxy:/:/sbin/nologin
polkitd:x:997:995:User for polkitd:/:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin