tar -cvf - /home | tar -xvf -
說明:把/home 拷貝到當前目錄下,管道前半句把/home打包放到標準輸出流中,後半句是把輸入流-裏的內容解包到當前目錄。linux
tar是Linux常見的一種歸檔文件(原生不包括壓縮功能)算法
gzip是gnu/Linux的一種壓縮文件工具,算法是基於 DEFLATE,文件是gz,能夠和tar組合。windows
zip是一種規範開放的壓縮文件,算法不定,但主要是用 DEFLATE
rar的算法專有,但發行時附送解碼器容許解碼器再開發,編碼器專有
7zip和zip差很少,算法不定,主要用bzip2和lzma,並且徹底開源。
zip和7z更像是壓縮容器,由於算法不是格式固定,容許支持其餘壓縮算法
大小與區別
tar是無壓縮的,比壓縮效率,gz的算法最原始,因此較低,其次zip,接着rar,7z兩個主要算法基本上略優於rar,基本不相上下。安全
在Linux裏面,tar通常和其餘沒有文件管理的壓縮算法文件結合使用,用tar打包整個文件目錄結構成一個文件,再用gz,bzip等壓縮算法壓縮成一次。也是Linux常見的壓縮歸檔的處理方法。網絡
zip相對比較老,格式規範可知,因此積累了各類加解壓實現,有較好的兼容性,不過現有文件格式相對而言比較落後,還有會有文件名亂碼問題(由於文件名是用非Unicode編碼)
rar和7z就新些,所用算法壓縮效率也好不少,兼容性不及zip,不過rar的編碼器有專利,但能夠不製做編碼器的狀況使用或者再開發發行版的解碼器(因此其餘壓縮管理工具能夠調用rar的解碼器來解壓rar,但不能加壓,百度雲的在線解壓rar多是使用或者再開發過unrar文件),7z的文件和管理程序都是開源的,文件格式也比較好(支持Unicode文件名),兩個主要壓縮算法的性能都很好,只是差什麼時候能普及而取代zip而已。app
壓縮率bzip2 > gzip > zip工具
zip的通用性較好,而如今windows下軟件winrar,7zip等對tar.gz的支持也很是好。推薦用tar.gz,bzip2要耗費更多的cpu性能
gzip能夠極大的加速網站.有時壓縮比率高達80%,近來測試了一下,最少都有40%以上,仍是至關不錯的.在Apache2以後的版本,模塊名不叫gzip,而叫mod_deflate測試
在網絡傳輸、設備之間轉存、複製大文件等時,因爲網絡不穩定等因素可能形成數據不一致,這就須要校驗文件的完整性。網站
md5sum命令用於生成和校驗文件的md5值。它會逐位對文件的內容進行校驗。是文件的內容,與文件名無關,也就是文件內容相同,其md5值相同。md5值是一個128位的二進制數據,轉換成16進制則是32(128/4)位的進制值。md5校驗,有很小的機率不一樣的文件生成的md5可能相同。比md5更安全的校驗算法還有SHA*系列的。
-b 以二進制模式讀入文件內容
-t 以文本模式讀入文件內容
-c 根據已生成的md5值,對現存文件進行校驗
--status 校驗完成後,不生成錯誤或正確的提示信息,能夠經過命令的返回值來判斷。
對同內容不一樣名的文件進行md5,md5值同樣,
-b、-t雖然是不一樣的讀入模式,可是在進行求md5的時候,是同樣的,由於是逐位校驗的。
md5sum值逐位校驗,因此文件越大,校驗時間越長。 ————————————————
【tar option】tar --help
-c, --create create a new archive創建壓縮檔案
-x, --extract, --get extract files from an archive解壓
-t, --list list the contents of an archive查看內容
-r, --append append files to the end of an archive向壓縮歸檔文件末尾追加文件
-u, --update only append files newer than copy in archive更新原壓縮包中的文件
這五個是獨立的命令,壓縮解壓都要用到其中一個,能夠和別的命令連用但只能用其中一個。下面的參數是根據須要在壓縮或解壓檔案時可選的。
-z:有gzip屬性的
-j:有bz2屬性的
-Z:有compress屬性的
-v:顯示全部過程
-O:將文件解開到標準輸出
下面的參數-f是必須的
-f: 使用檔案名字,切記,這個參數是最後一個參數,後面只能接檔案名。
--exclude=PATTERN exclude files, given as a PATTERN
tar -czvf proftpd.tar.gz /home/proftpd --exclude *.log #壓縮/home/proftpd目錄下文件(除去.log文件)到proftpd.tar.gz
壓縮
tar -cvf jpg.tar *.jpg //將目錄裏全部jpg文件打包成tar.jpg
tar -czf jpg.tar.gz *.jpg //將目錄裏全部jpg文件打包成jpg.tar後,而且將其用gzip壓縮,生成一個gzip壓縮過的包,命名爲jpg.tar.gz
tar -cjf jpg.tar.bz2 *.jpg //將目錄裏全部jpg文件打包成jpg.tar後,而且將其用bzip2壓縮,生成一個bzip2壓縮過的包,命名爲jpg.tar.bz2
tar -cZf jpg.tar.Z *.jpg //將目錄裏全部jpg文件打包成jpg.tar後,而且將其用compress壓縮,生成一個umcompress壓縮過的包,命名爲jpg.tar.Z
rar a jpg.rar *.jpg //rar格式的壓縮,須要先下載rar for linux
zip jpg.zip *.jpg //zip格式的壓縮,須要先下載zip for linux
解壓
tar -xvf file.tar //解壓 tar包
tar -xzvf file.tar.gz //解壓tar.gz
tar -xjvf file.tar.bz2 //解壓 tar.bz2
tar -xZvf file.tar.Z //解壓tar.Z
unrar e file.rar //解壓rar
unzip file.zip //解壓zip
總結
一、*.tar 用 tar -xvf 解壓
二、*.gz 用 gzip -d或者gunzip 解壓
三、*.tar.gz和*.tgz 用 tar -xzf 解壓
四、*.bz2 用 bzip2 -d或者用bunzip2 解壓
五、*.tar.bz2用tar -xjf 解壓
六、*.Z 用 uncompress 解壓
七、*.tar.Z 用tar -xZf 解壓
八、*.rar 用 unrar e解壓
九、*.zip 用 unzip 解壓