1. 程式人生 > >Linux學習總結(十四) 文件的打包和壓縮

Linux學習總結(十四) 文件的打包和壓縮

tar gzip bzip2 xz zip

文件的壓縮和打包,在windos下我們很熟悉.rar和.zip文件,這是兩種壓縮文件,他們支持單個文件和多個文件的壓縮。windos下我們不提及打包的概念,雖然多個文件的壓縮肯定存在打包過程。
打包和壓縮的區別,從字面意思就可以看出,打包是將多個文件捆綁到一起,目的是方便拷貝和傳輸,壓縮通常是對打包後的再處理,目的是節省資源,比如節省網絡帶寬,提高傳輸效率。
從以上結論中,我們就能理解為什麽linux會有如此多的打包壓縮工具,windos要求操作盡可能簡單,linux要求高效和控制力。
幾種打包壓縮工具和其文件名後綴對應關系:
tar ----- .tar
gzip ------.gz
bzip2 -----.bz2
xz --------.xz
zip -------.zip

一 對於單個文件的處理:

介紹三種壓縮工具:
1 gzip 將文件壓縮後得到.gz後綴的包,不壓縮目錄
格式 gzip filename
gzip -d filename.gz 解壓縮
gzip -c filename >> filname.gz 保留原文件壓縮
gzip -dc filename.gz >> filename 保留原文件解壓bzi
2.bzip2
用法基本和gzip一致,得到一個.bz2後綴的包
壓縮 bzip2 filename
解壓 bzip2 -d filename.bz2
3 xz
壓縮 xz filname

解壓 xz -d filename.xz

二 對於多個文件的處理:

1.先對文件打包, tar 命令
-c 創建包
-v 可視化
-f 指定文件
-x 解開包
格式 tar -cvf filename.tar filename1 filename2
不想看到過程-v可以不要
tar -xvf filename.tar
-C 可以指定解包路徑
2.結合上面三種壓縮方式,可以一並打包壓縮
-z 用gzip壓縮
-j 用bzip2壓縮
-J 用xz壓縮
那麽三種打包並壓縮的格式就是:
tar -zcvf filename.tar.gz filename1 filename2
tar -jcvf filename.tar.bz2 filename1 filename2

tar -Jcvf filename.tar.xz filename1 filename2
對應解壓格式為:
tar -zxvf filename.tar.gz
tar -jxvf filename.tar.bz2
tar -Jxvf filename.tar.xz
如果你記不準幾種格式的參數,那麽解壓的時候有種偷懶辦法,不帶格式,
tar -xvf filename.tar.gz 或者filename.tar.bz2 或者filename.tar.xz
系統自動匹配要解壓的格式
3.zip壓縮與unzip解壓
該格式的好處是同時支持windos和linux環境,因此要在該兩個環境傳輸文件首選zip壓縮
格式 zip filename.zip filename1 filename2
filename.zip 帶路徑就可以指定壓縮包的路徑
-r 級聯壓縮目錄
解壓 unzip filename.zip
-d 指定解壓目錄
unzip filename.zip -d /tmp/
4 幾種包的查看
tar包 tar -tf 查看包內文件列表
gzip 包 zcat 查看包內文件內容
bzip2 包 bzcat
xz包 xzcat
5.幾種工具對比
gzip bzip2 xz 直接壓縮和解壓都不保留原文件,除非重定向。
tar zip 默認保留原文件

Linux學習總結(十四) 文件的打包和壓縮