压缩、解压缩及归档工具
一、杂项知识整理
1、find -iname 忽略大小写;
-inum 查找指定inode号的文件;
find 在有条件判断的时候,如果不加括号,最后的命令会被当成以为第二个条件之后的:例
[root@localhost shelltest]# find / -name "*.conf" -o -iname "*.sh" -ls | wc -l 456 [root@localhost shelltest]# find / \( -name "*.conf" -o -iname "*.sh" \) -ls | wc -l 1056
2、API应用程序开发接口:是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力。POSIX可移植操作系统几口标准;ABI应用程序二进制接口:应用程序和操作系统之间,一个应用和他的库之间或者应用的组成部分之间的低接口。
API接口是用作开发人员和应用程序之间,ABI用于操作系统和应用程序之间。(通俗理解)
3、du 列出指定文件或目录及内部文件的大小
-h human readable
-s 仅显示给定的文件
[root@localhost shelltest]# du -h /etc/ 12K/etc/pki/rpm-gpg 12K/etc/pki/tls/certs 24K/etc/pki/tls/misc ... [root@localhost shelltest]# du -sh /etc/ 24M/etc/
二、命令详解及事例
1、compress命令,扩展名为.Z
-d 解压缩,相当于uncompress
-c 结果输出至标准输出,不删除原文件
-v 显示详情
uncompress解压缩
zcat file.Z >file 直接查看压缩文件
2、gzip;扩展名为.gz,zcat查看压缩文件
-d 解压缩,相当于gunzip
-c 将压缩或者解压缩的结果输出至标准输出
-# 1-9 指定压缩比,值越大压缩比越大
[root@localhost tmp]# gzip functions [root@localhost tmp]# ls functions.gz mysh12.sh mysh15.sh mysh18.sh mysh20.sh mysh3.sh mysh6.sh [root@localhost tmp]# gunzip functions.gz [root@localhost tmp]# ls functions mysh12.sh mysh15.sh mysh18.sh mysh20.sh mysh3.sh mysh6.sh
3、bzip;扩展名为.bz2,bzcat查看压缩文件
-k 保留原文件keep
-d 解压缩,相当于bunzip2
-# 指定压缩比,默认是6
4、xz;解压缩为unxz,xzcat查看压缩文件
-k 保留原文件
-d 解压缩
-# 指定压缩比,默认为6
[root@localhost tmp]# xz functions [root@localhost tmp]# ls functions.xz mysh12.sh mysh15.sh mysh18.sh mysh20.sh mysh3.sh mysh6.sh [root@localhost tmp]# unxz functions.xz [root@localhost tmp]# ls functions mysh12.sh mysh15.sh mysh18.sh mysh20.sh mysh3.sh mysh6.sh [root@localhost tmp]# xz -k functions [root@localhost tmp]# ls functions mysh11.sh mysh14.sh mysh17.sh mysh1.sh mysh2.sh functions.xz mysh12.sh mysh15.sh mysh18.sh mysh20.sh mysh3.sh mysh6.sh
以上皆不能压缩目录
5、zip打包压缩 unzip解包解压缩;扩展名.zip
6、tar归档
-c -f 创建归档,不删除原文件
-xf 展开归档。不删除原文件
-tf 查看归档文件中的文件列表
归档后通常需要压缩,结合以上的压缩工具,就能实现压缩多个文件:
归档并压缩: -z : gzip
-j : bzip2
-J : xz
-C(大写)指定目录解压缩
[root@localhost tmp]# tar -zcf ./functions.tar.gz functions [root@localhost tmp]# ls functions functions.tar.gz lib64 log shelltest test [root@localhost tmp]# tar -xf ./functions.tar.gz -C /testdir/ [root@localhost tmp]# ls functions functions.tar.gz lib64 log shelltest test [root@localhost tmp]# cd /testdir/ [root@localhost testdir]# ls a aaa data lost+found passwd.bak shelltest test aa copytest functions passwd string.txt user userinfo
解压缩都用-xf -C,压缩分别为jcf,Jcf和zcf(gzip)
[root@localhost tmp]# tar -jcf functions.tar.bz2 functions [root@localhost tmp]# ls functions functions.tar.bz2 functions.tar.gz lib64 log shelltest test [root@localhost tmp]# tar -Jcf functions.tar.xz functions [root@localhost tmp]# ls functions functions.tar.bz2 functions.tar.gz functions.tar.xz lib64 log shelltest test [root@localhost tmp]# tar -xf functions.tar.xz -C /testdir/
7、cpio:通过重定向的方式将文件进行打包备份,还原恢复的工具,他可以解压以.cpio或.tar结尾的文件。
cpio [] > 文件或设备名
cpio [] < 文件或设备名
-o 将文件拷贝打包成文件或者将文件输出到设备上
-i 解包,将打包文件解压或者将设备上的备份还原到系统
-t 预览,查看文件内容或者输出到设备上的文件内容
-v 显示打包过程中的文件名称
-d 解包生成目录,在cpio还原时自动的建立目录
-c 一种较新的存储方式
注意:(1)cpio恢复的路径,如果cpio在打包备份的时候使用的是绝对路径,那么在恢复的时候会自动恢复到这些绝对路径下面,同理,如果用的是相对路径,还原时也将恢复到相对路径下。
(2)cpio无法直接读取文件,它需要每个文件或者目录的完整路径名才能识别读取,而find命令的输出刚好做到了这点,因此,cpio命令一般和find命令配合使用。
(3)cpio恢复的时候不会自动覆盖同名文件。
(4)不会创建目录而是直接解压到当前文件夹。
(5)-iv和-div的区别:-iv是将所有文件压缩到同一个目录下,-idv将压缩时候的目录等级也一并还原回去,一般来说都会加-d选项。
将etc目录备份:
find /etc/ -print | cpio -ov > etc.cpio
[root@localhost testdir]# find /etc/ -print | cpio -o > etc.cpio 41342 块
内容预览:cpio -tv < etc.cpio
解包文件:cpio -idv < etc.cpio
原创文章,作者:SilencePavilion,如若转载,请注明出处:http://www.178linux.com/34646