壓縮、解壓縮及歸檔工具
一、雜項知識整理
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.www58058.com/34646