1. 程式人生 > >Linux 檔案壓縮和打包

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

檢視打包壓縮檔案