linux 備份、壓縮、加密

jopen 9年前發布 | 17K 次閱讀 Linux

tar是Linux常見的一種歸檔文件(原生不包括壓縮功能)

gzip是gnu/Linux的一種壓縮文件工具,算法是基于 DEFLATE,文件是gz,可以和tar組合。

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而已。

壓縮率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】

-c: 建立壓縮檔案
-x:解壓
-t:查看內容
-r:向壓縮歸檔文件末尾追加文件
-u:更新原壓縮包中的文件

這五個是獨立的命令,壓縮解壓都要用到其中一個,可以和別的命令連用但只能用其中一個。下面的參數是根據需要在壓縮或解壓檔案時可選的。

-z:有gzip屬性的
-j:有bz2屬性的
-Z:有compress屬性的
-v:顯示所有過程
-O:將文件解開到標準輸出

下面的參數-f是必須的

-f: 使用檔案名字,切記,這個參數是最后一個參數,后面只能接檔案名。

# tar -cf all.tar *.jpg
這條命令是將所有.jpg的文件打成一個名為all.tar的包。-c是表示產生新的包,-f指定包的文件名。

# tar -rf all.tar *.gif
這條命令是將所有.gif的文件增加到all.tar的包里面去。-r是表示增加文件的意思。

# tar -uf all.tar logo.gif
這條命令是更新原來tar包all.tar中logo.gif文件,-u是表示更新文件的意思。

# tar -tf all.tar
這條命令是列出all.tar包中所有文件,-t是列出文件的意思

# tar -xf all.tar
這條命令是解出all.tar包中所有文件,-t是解開的意思

壓縮

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

總結

1、*.tar 用 tar -xvf 解壓

2、*.gz 用 gzip -d或者gunzip 解壓

3、*.tar.gz和*.tgz 用 tar -xzf 解壓

4、*.bz2 用 bzip2 -d或者用bunzip2 解壓

5、*.tar.bz2用tar -xjf 解壓

6、*.Z 用 uncompress 解壓

7、*.tar.Z 用tar -xZf 解壓

8、*.rar 用 unrar e解壓

9、*.zip 用 unzip 解壓

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!