linux的各种压缩命令
本文包括linux的BZIP2、BZCAT、rar、tar、zip、unzip、cpio、compress、pax等各种压缩命令
BZIP2、BZCAT
-c 将压缩的过程产生的资料输出到荧屏上
-d 解压缩的参数
-z 压缩的参数
-1 与gzip一样,都是在计算压缩比的参数,-9最佳,-1最快。
bzip2 [-cdz] 档案名
bzcat 档案名.bz2
example:
bzip2 -z man.config /* 压缩成man.cofig.bz2 (不加参数也可以) */
bzcat man.cofig.bz2 /* 把档案内容读出来 */
bunzip2 filename.bz2 /* 将其解档 */
bzip2 -d filename.bz2 /* 将其解档,同上 */
bzip2 -9 -c man.config > man.config.bz2 /*将文件采用最大压缩比例压档并保留原档*/
bzip2 -c filename > filename.bz2 /* 将文件压档,同上 */
bzip2 -dc filename.bz2 > filenam /* 解档并保留原档 */
bunzip2 -c filename.bz2 > filename /* 同上 */
gzip
gzip
gzip a.rpm /* 将当前目录下的a.rpm 压缩为a.rpm.gz */
gzip -c a.rpm > a.bak.gz /* 压缩并留下原文件 */
gzip -d a.rpm.gz /* 将文件解压,并保存为a.rpm */
gunzip a.rpm.gz /* 同上 */
gzip -1 a.rpm /* 最快速度压缩 */
gzip -9 a.rpm /* 最大压缩比速度 */
rar命令
rar a ra95.rar -p ra95 压缩ra95文件夹为ra95.rar
rar x ra95.rar 解压缩并创建全路径目录
tar
tar -zvcf - filename| split -b1000m - /home/filename.tar.gz.
分卷压缩文件成1000m大小,放在/home目录下(命令末尾有个小数点".")
cat filename.tar.gz.* | tar -zvxf - /opt
将分卷压缩的文件解压到/opt目录下
find /path -type f -mtime 0 -print > /path/file
tar -zcvf - -T /path/file |split -b 10m - test.tar.gz.
cat test.tar.gz.* | tar -zxvf -
tar cvf backup.tar /path
tar zcvf backup.tar.gz /path
tar jcvf backup.tar.bz2 /path
tar xvf backup.tar
tar zxvf backup.tar.gz
tar jxvf backup.tar.bz2
用tar自动打包
#!/bin/sh
#The script written by Chameleon
#Welcome to my homepage!http://Chameleon.icpcn.com
dir=/usr/local/japp/sendtime/log/
time=`date +%Y%m%d`
filename=$time.tgz
cd $dir
tar -czf $filename $time && rm -fr $dir/$time
if [ -f $dir/$filename ];then
echo "tar is ok">$dir/tar_ok.log
else
echo "$time is not exist">$dir/not_exist.log
fi
zip
zip –r abc.bak abc/
将abc目录下的文件压缩成abc.bak
unzip
将abc1.zip abc2.zip abc3.zip 解压值文件夹 /opt/soft 目录下
同时解压多个文件unzip -d /opt/soft "abc*.zip" 文件名加 " 号
zip –r abc.bak abc/
将abc目录下的文件压缩成abc.bak
cpio
[root@laptop tmp]# cpio -o -O photo.cpio
按回车以后要手工输入所需要打包的文件名。以Ctrl+D组合键结束。
注:-o 参数也可义用 --create替代,表示正在使用copy-out模式,
-O 参数只能和-o一起使用,表示出于out模式时,指定生成的文件。
[root@laptop tmp]# ls | cpio -o > photo.cpio
显示photo.cpio中的内容:
cpio -t < photo.cpio
含子目录打包:
# find /usr/local/test -print |cpio –o > /u01/a.cpio
解压:
# cpio –idmv < a.cpio
-i 解压文档
-d 在需要的地方创建目录
-m 保留文档从前的修改时间
-v 列出文件的处理过程,如果在本地没有文档的用户名和组将在本系统内用UID和GID代替。
-c 一种较新的便携式portable format方式存储
-B 让预设的Blocks可以增加至512bytes,预设是512bytes! 这样做的好处是让大档案的存储速度加快
-u 自动将较新的档案覆盖较旧的档案
将所有系统上的资料统统写入磁带机内:
# find / -print |cpio –covB > /dev/st0
将档案还原回来:
# cpio –icduv < /dev/st0
备份:find . -print | cpio –o[acvB] > device
恢复:cpio –itbv < device
find /usr\/local\/java\/ -print |cpio -oacvB > java.cpio
注意:必须要有这个\/,否则只打包一个路径名
compress
ncompress-4.2.4-47.x86_64.rpm 工具是此rpm包
-d 用来压缩的参数
-r 可以连同目录下的档案也同时给予压缩
-c 将压缩资料输出为 stand output(输出到屏幕)
compress -v a.text /* 显示信息情况的压缩 */
compress -f a.cpio /* 强制压缩,一般不用这个选项,不能压缩的反而会出现反压缩比。*/
压缩完后,会出现 .Z的后缀,example: a.txt.Z a.cpio.Z
uncompress -v a.text.Z /* 显示信息压缩,并去掉后缀(它是compress的一个链接,可用compress -d a.txt.Z 解档)。*/
uncompress a.cpio.Z /* 不显示信息压缩,并去掉后缀。*/
compress -d man.config.Z /* 解档 */
compress -c man.config > man.config.back.Z /* 压档并留下原有文件 */
pax
pax的一大特点是:它的pax档能被tar xvf work.pax ;cpio -idmn < work.pax 分别解档,它也能解开.tar和.cpio的档案!
pax -wf work.pax work/ 创建归档
pax -rvf work.pax 释放归档
pax -rwv work /tmp/ 将一个目录的文件拷到另一个个目录