25.1 早期的压缩命令
compress: FILENAME.Z
uncompress
25.2 目前常用的压缩命令
压缩格式:gz, bz2, xz, zip, Z
压缩算法:算法不同,压缩比也会不同;
1、gzip: .gz
gzip /PATH/TO/SOMEFILE:压缩完成后会删除原文件
-d:解压缩
-c:将结果输出至标准输出
-#:1-9,指定压缩比,默认是6;
gunzip: 解压缩
gunzip /PATH/TO/SOMEFILE.gz: 解压完成后会删除原文件
查看压缩文件内容
zcat /PATH/TO/SOMEFILE.gz: 不解压的情况,查看文本文件的内容
3、bzip2: .bz2
比gzip有着更大压缩比的压缩工具,使用格式近似
bzip2 /PATH/TO/SOMEFILE
-d:解压缩
-#: 1-9,默认是6
-k: 压缩时保留原文件
bunzip2 /PATH/TO/SOMEFILE.bz2
解压缩命令
bzcat:不解压查看压缩文件内容
4、xz: .xz
xz /PATH/TO/SOMEFILE
-d:解压缩
-#: 1-9, 默认是6
-k: 压缩时保留原文件
unxz:解压缩
xzdec:体积很小的解压缩xz文件的软件
xzcat :不解压的情况,查看文本文件的内容
5、zip
zip: 既归档又压缩的工具,可以压缩目录
zip FILENAME.zip FILE1 FILE2 ...: 压缩后不删除原文件
unzip FILENAME.zip
使用deflat的压缩算法
archive: 归档,归档本身并不意味着压缩
分卷打包
zip -s 50m -r test.zip /etc #(把etc目录按50M大小分卷打包。)
-s: 创建分卷的大小
-r: 循环压缩文件夹下面的内容
zip -s 0 test.zip --out etc.zip #把test.zip分卷合并成etc.zip压缩包
6、tar
tar: 归档工具,只归档不压缩, .tar
-c: 创建归档文件
-f FILE.tar: 操作的归档文件
-x: 展开归档
--xattrs: 归档时,保留文件的扩展属性信息
-t: 不展开归档,直接查看归档了哪些文件
-zcf: 归档并调用gzip压缩
-zxf: 调用gzip解压缩并展开归档,-z选项可省略
-jcf: 归档并调用bzip2压缩
-jxf:调用bzip2解压缩并展开归档,-j选项可省略
-Jcf: 归档并调用 xz压缩
-Jxf:调用xz解压缩并展开归档,-J选项可省略
7、ccpio
cpio: 比tar更古老的归档工具
练习:写一个脚本
从键盘让用户输入几个文件,脚本能够将此几个文件归档压缩成一个文件;
read:
-p “PROMPT": 给出提示
[root@localhost ~]# vim tar.sh
[root@localhost ~]# bash -n tar.sh
[root@localhost ~]# ./tar.sh
Please input three file:a b c
Destination:tar
Compress type:(gzip,bzip2,xz)xz
[root@localhost ~]# ll
total 20
-rw-------. 2 root root 1426 May 27 06:31 a
-rw-------. 2 root root 1426 May 27 06:31 anaconda-ks.cfg
lrwxrwxrwx. 1 root root 15 Jul 21 21:46 b -> anaconda-ks.cfg
-rw-r--r--. 1 root root 0 Jul 23 03:56 c
-rwxr-xr-x. 1 root root 378 Jul 23 04:09 tar.sh
-rw-r--r--. 1 root root 1072 Jul 23 04:09 tar.tar.xz
-rw-r--r--. 1 root root 32 Jul 23 03:12 test.xz
[root@localhost ~]# tar -tf tar.tar.xz
a
b
c
#脚本
#!/bin/bash
#
read -p "Please input three file:" FILE1 FILE2 FILE3
read -p "Destination:" DEST
read -p "Compress type:(gzip,bzip2,xz)" TYPE
case $TYPE in
gzip)
tar -zcf ${DEST}.tar.gz $FILE1 $FILE2 $FILE3;;
bzip2)
tar -jcf ${DEST}.tar.bz2 $FILE1 $FILE2 $FILE3;;
xz)
tar -cf ${DEST}.tar $FILE1 $FILE2 $FILE3
xz ${DEST}.tar;;
$)
echo "wrong Input,exiting"
exit 9;;
esac
评论关闭。