压缩解压缩命令:
压缩格式:gz,bz2,xz,zip,z
压缩算法:算法不同,压缩比也会不同:
compress::FILENAME.Z
uncompress
目前最流行的压缩工具:
gzip: .gz 只能压缩文件
gzip / PATH/TO/SOMEFILE/ 压缩完后删除源文件
-d 也表示解压缩
-#:[1-9],指定压缩比,默认是6
gunzip:
gunzip /PATH/TO/SOMEFILE.gz 解压完后会删除源文件
zcat/PATH/TO/SOMEFILE.gz不解压的情况,查看文本文件内容
bzip2: .bz2 比gzip有更大压缩比的压缩工具,使用格式近似
bzip2 /PATH/TO/SOMEFILE 压缩后也会删除源文件
-d解压缩
-#:[1-9],默认6
-k保留源文件
[[email protected]]# bzip2 -d -k fstab.bz2
[[email protected]]# ls
abc b2 fstab fstab.bz2
bunzip2 /PATH/TO/SOMEFILE 解压缩
bzcat,在不解压缩的情况下,查看bzip2的文本类压缩文件
xz: .xz
xz/PATH/TO/SOMEFILE 压缩后也会删除源文件
–d解压
-# [1-9],指定压缩比,默认6
-k 压缩时也能保留源文件
unxz 解压缩
xzdec
xzcat 在不解压缩的情况下,查看xz的文本类压缩文件
zip:压缩工具,压缩比不大。可以压缩目录,可以将多个文件压缩到一起,压缩后不删除源文件
zipFILENAME.zip FILE1 FILE2…
unzip FILENAME.zip 解压缩后不删除源文件
archive:归档,归档本身并不意味着压缩
tar:只归档不压缩(归档后不删除源文件)
-c 创建归档文件
-f FILE.tar操作的归档文件(必须制定归档名)
[[email protected]]# tar -cf skel.tar skel
[[email protected]]# ls -lh
总用量 40K
-rw-r--r--. 1 rootroot 10K 6月 11 15:28skel.tar
-x 还原归档,不删除归档文件
[[email protected]]# tar -xf skel.tar
[[email protected]]# ls
fstab.xz skel skel.tar
--xattrs 在归档的同时,保留文件的扩展属性信息
-t 不展开归档查看归档了哪些文件
[[email protected]]# tar -cf V.tar a b c d
[[email protected]]# tar -tf V.tar
a/
b/
c/
d/
[[email protected]]# xz V.tar (既归档又压缩)
[[email protected]]# ls -lh
总用量 48K
-rw-r--r--. 1 rootroot 184 6月 11 15:38V.tar.xz
-zcf: 归档并调用gzip压缩
[[email protected]]# tar -zcf abcd.tar.gz a b c d
[[email protected]]# ls
a abcd.tar.gz b c d
-xcf调用gzip解压缩并展开归档
-jcf调用bzip2
[[email protected]]# tar -jcf abcd.tar.bz2 a b c d
[[email protected]]# ls
a abcd.tar.bz2 b c d
-jxf解压缩
-Jcf调用xz
[[email protected]]# tar -Jxf abcd.tar.xz a b c d
[[email protected]]# ls
a abcd.tar.xz b c d
-Jxf解压缩
很多时候解压缩的时候展开的-J或者-j或者-z可以不写
tar -ztfabcd.tar.gz 不展开直接看里面的内容,同样这里的z或者j或者J可以省略
cpio :归档工具
[[email protected]]# file /boot/initramfs-2.6.32-504.el6.i686.img /boot/initramfs-2.6.32-504.el6.i686.img: gzipcompressed data, from Unix, last modified: Mon Jun 6 17:35:04 2016, max compression
[[email protected]]# cp /boot/initramfs-2.6.32-504.el6.i686.img /tmp 复制这个压缩文件到/tmp下
[[email protected]]# mv initramfs-2.6.32-504.el6.i686.img initramfs-2.6.32-504.el6.i686.img.gz
[[email protected]]# gzip -d initramfs-2.6.32-504.el6.i686.img.gz 解压缩
[[email protected]]# ls
a abcd.tar.gz b c d initramfs-2.6.32-504.el6.i686.img
[[email protected]]# file initramfs-2.6.32-504.el6.i686.img 查看文件类型为cpio归档的文件
initramfs-2.6.32-504.el6.i686.img:ASCII cpio archive (SVR4 with no CRC)
练习:写一个脚本
从键盘让用户输入几个文件名,脚本能够将此几个文件归档并压缩成一个文件:
#!/bin/bash
read -p "Threefiles:" FILE1 FILE2 FILE3
read -p"Destination:" DEST
read -p"Compress[gzip|bzip2|xz]:" COMP
case $COMP in
xz)
tar -Jcf${DEST}.tar.xz $FILE1 $FILE2 $FILE3
;;
gzip)
tar -zcf${DEST}.tar.gz $FILE1 $FILE2 $FILE3
;;
bzip2)
tar -jcf${DEST}.tar.bz2 $FILE1 $FILE2 $FILE3
;;
*)
echo"Unknown."
exit 2
;;
esac