Linux 檔案壓縮和打包
1. 壓縮打包介紹
常見壓縮檔案
windows .rar .zip .7z
Linux .zip, .gz, .bz2, .xz, .tar.gz, .tar.bz2, .tar.xz
2. gzip壓縮工具
2.1 Bullet Points ---- gzip
gzip -# file name |
定義壓縮級別 範圍1-9 預設為6 |
gzip |
不能壓縮目錄 |
gzip filename |
壓縮檔案,暫不支援壓縮目錄,壓縮後原始檔消失 |
gzip -d filename.gz |
解壓檔案,解壓後,源壓縮檔案消失 |
gunzip filename.gz |
解壓檔案,解壓後,源壓縮檔案消失 |
gzip -c filename > /tmp/filename.gz |
指定壓縮檔案路徑,並且原始檔存在 |
gzip -d -c /tmp/filename.gz > /目錄/filename |
解壓檔案到指定路徑,並且源壓縮檔案存在 |
gunzip -c /tm/filename.gz > /目錄/filename |
解壓檔案到指定路徑,並且源壓縮檔案存在 |
zcat 1.txt.gz |
檢視.gz檔案 |
file /tmp/1.txt.gz |
檢視檔案屬性 |
eg. gzip 以及gzip-d 例項
下例中,可以看出壓縮後在解壓實際大小從1.6M 變成了1.3M並且行數不變
Gzip -#表示壓縮級別 1.txt (範圍1-9,預設6 從1 到9依次增強)
zacat 1.txt.gz是察看壓縮檔案的命令,操作過程是先解壓後察看
gzip -c 1.txt > /root/1.txt.gz 是指將1.txt 解壓到root下並保留1.txt原檔案
& 可以通過file命令檢視檔案屬性.
file 1.txt.gz
& Zcat 檢視打包檔案內容
3. bzip2 壓縮工具
3.1 Bullet Point - bzit2
bzip2 -# file name |
定義壓縮級別 範圍1-9 預設為9 |
bzip2 |
不能壓縮目錄 |
bzip2 filename |
壓縮檔案,暫不支援壓縮目錄,壓縮後原始檔消失 |
bzip2 -d filename.bz2 |
解壓檔案,解壓後,源壓縮檔案消失 |
bzip2 -c filename > /tmp/filename.bz2 |
指定壓縮檔案路徑,並且原始檔存在 |
bzip -d -c /tmp/filename.bz > /目錄/filename |
解壓檔案到指定路徑,並且源壓縮檔案存在 |
bzcat 1.txt.bz2 |
檢視.gz檔案 |
file /tmp/1.txt.bz2 |
檢視檔案屬性 |
相較於gzip 壓縮強度更大,演算法也不同,壓縮強度越大 也意味著耗費cpu資源越多,bizp預設指定的級別就是9
注意下例,證明了壓縮檔案可以被改成其他名字,如果當檢視txt檔案提示為二進位制時,應習慣用file首先檢視一下此檔案
4. xz壓縮工具
不常用,但是會在tar包裡遇到 .tar.xz, 壓縮強度強於bzip, 所耗費的cpu資源也更多
4.1 Bullet Point
xz -# filename |
定義壓縮級別 範圍1-9 預設為9 |
xz 1.txt / xz -z 1.txt |
壓縮檔案 |
zip filename |
壓縮檔案,暫不支援壓縮目錄,壓縮後原始檔消失 |
xz -d filename.xz / unxz filename.xz |
解壓縮檔案 |
xz -c filename > /tmp/filename.gz |
指定壓縮檔案路徑,並且原始檔存在 |
xz -d -c /tmp/filename.xz > /目錄/filename |
解壓檔案到指定路徑,並且源壓縮檔案存在 |
unxz -c /tm/filename.xz > /目錄/filename |
解壓檔案到指定路徑,並且源壓縮檔案存在 |
xzcat 1.txt.xz |
檢視.xz檔案 |
file /tmp/1.txt.xz |
檢視檔案屬性 |
5. zip壓縮工具
5.1 Bullet Point
zip -r dirname.zip dirname |
壓縮目錄 |
zip filename |
壓縮檔案,壓縮後原始檔保留 |
unzip dir/filename.zip |
解壓檔案,解壓後,源壓縮檔案消失 |
unzip file.zip -d 目錄/ |
解壓檔案到指定目錄,但無法更改名字 |
unzip -l dirname.zip |
檢視檔案列表但是不能檢視檔案內容 |
zip的特點是壓縮後原有檔案不刪除
zip的壓縮包是沒辦法檢視內容,只能通過unzip-l檢視檔案列表而不是內容
6. tar 打包工具
打包對於檔案的大小並沒有太大的變化,目的是把所有型別檔案整合成一個大檔案, 便於傳輸.
tar 打包或解包均會直接覆蓋原檔案和目錄,不會提示覆蓋資訊
6.1 Bullet Point
tar 引數 |
l -z表示同時使用gzip壓縮 |
l -j表示同時用bzip壓縮 |
|
l -J表示同時用xz壓縮 |
|
l -c表示建立一個tar包或者壓縮檔案包 |
|
l -x表示解包或者解壓 |
|
l -v表示視覺化 |
|
l -f後面跟檔名(-f filename,表示壓縮後的檔名為filename)注意:如果多個引數組合的情況下,-f要寫在最後面。 |
|
l -t表示檢視tar包裡的檔案 |
|
l --exclude filename 表示在打包或壓縮時,不要將某個檔案不包含在裡面。 |
tar -cvf dirname.tar dir |
打包目錄 |
tar -cvf dirname.tar dir filename |
打包目錄以及檔案 |
tar -xvf dir/filename.tar |
解包 |
tar -tf dir/filename.tar |
檢視打包檔案 |
tar -cvf dir/filename.tar --exclude filename dirname |
打包目錄不包括某檔案 |
tar -tf fred.tar 檢視檔案列表, 等同於unzip -l
7. 打包並壓縮,解包並解壓縮
7.1 Bullet point
打包並使用某種方式的壓縮 |
gzip壓縮,bzip壓縮和xz壓縮 |
l tar -zcvf dir/filename.tar.gz dir/filename |
以gz的形式打包壓縮 |
l tar -zxvf dir/filename.tar.gz |
以gz的形式解包解壓縮 |
l tar -jcvf dir/filename.bz2 dir/filename |
以bz2的形式打包壓縮 |
l tar -jxvf dir/filename.bz2 |
以bz2的形式解包解壓縮 |
l tar -Jcvf dir/filename.xz dir/filename |
以xz的形式打包壓縮 |
l tar -Jxvf dir/filename.xz |
以xz的形式解包解壓縮 |
l tar -tf dir/filename.bz2 / tar -tf dir/filename.gz / tar -tf dir/filename.xz |
檢視打包壓縮檔案 |