Linux 下常用的歸檔壓縮方式
很多時候,通過網際網路傳送或接收大檔案和圖片是一件令人頭疼的事。壓縮及解壓縮工具正好可以應對這個問題。下面讓我們快速瀏覽一些可以使得我們的工作更加輕鬆的開源工具。
Tar
Tar 由 Tape archiver(磁帶歸檔器) 衍生而來,最初被用來在磁帶上歸檔和儲存檔案。Tar 是一個 GNU 軟體,它可以壓縮一組檔案(歸檔),或提取它們以及對已有的歸檔檔案進行相關操作。在儲存、備份以及傳輸檔案方面,它是很有用的。在建立歸檔檔案時,Tar 可以保持原有檔案和目錄結構不變。通過 Tar 歸檔的檔案的字尾名為 .tar。
基本用法如下:
a) 建立歸檔 (c / –create) shell> tar --create --verbose --file=archive.tar sakila-data.sql sakila-schema.sql world-schema.sql 或 shell> tar cvf archive.tar sakila-data.sql sakila-schema.sql world-schema.sql sakila-data.sql sakila-schema.sql world-schema.sql shell> ls archive.tar create.sql sakila-data.sql sakila-schema.sql world-schema.sql b) 列出歸檔檔案內容 ( t / –list) shell> tar tvf archive.tar -rw-r--r-- root/root 3231472 2015-04-02 22:59 sakila-data.sql -rw-r--r-- root/root 23067 2015-04-02 22:59 sakila-schema.sql -rw-r--r-- root/root 397011 2015-04-02 22:59 world-schema.sql c) 提取歸檔 (x / –extract) shell> tar xvf archive.tar # 從歸檔中提取字尾名為 *.h 的檔案。 tar xvf archive.tar --wildcards '*.h' d) 對歸檔檔案進行更新 ( u / –update) shell> tar uvf archive.tar create.sql create.sql e) 從歸檔中刪除檔案 (–delete) #從壓縮包archive.tar 中刪除檔案 create.sql shell> tar --delete -f archive.tar create.sql shell> tar tvf archive.tar -rw-r--r-- root/root 3231472 2015-04-02 22:59 sakila-data.sql -rw-r--r-- root/root 23067 2015-04-02 22:59 sakila-schema.sql -rw-r--r-- root/root 397011 2015-04-02 22:59 world-schema.sql f) 壓縮選項: -a, --auto-compress 使用歸檔字尾名來決定壓縮程式 -I, --use-compress-program=PROG 通過 PROG 過濾(必須是能接受 -d 選項的程式) -j, --bzip2 通過 bzip2 過濾歸檔 -J, --xz 通過 xz 過濾歸檔 --lzip 通過 lzip 過濾歸檔 --lzma 通過 lzma 過濾歸檔 --lzop --no-auto-compress 不使用歸檔字尾名來決定壓縮程式 -z, --gzip, --gunzip, --ungzip 通過 gzip 過濾歸檔 -Z, --compress, --uncompress 通過 compress 過濾歸檔 shell> tar czvf archive.tar.gz *.sql shell> tar cjvf archive.tar.bz2 *.sql shell> tar zxvf archive.tar.gz shell> tar jxvf archive.tar.bz2
更加具體的使用方法請參考 tar 主頁。
Gzip / Gunzip
Gzip 即 GNU zip,它是一個被廣泛用於 Linux 作業系統中的壓縮應用,被其壓縮的檔案的字尾名為*.gz 。
基本用法如下:
a) 壓縮檔案 shell> gzip archive.tar #單獨每個檔案將壓縮。 shell> ls archive.tar.gz create.sql sakila-data.sql sakila-schema.sql world-schema.sql 通常在壓縮完成後,它會將原來的檔案刪除。我們可以使用 -c 選項來保留原來的檔案。 shell> gzip -c archive.tar > archive.tar.gz #壓縮後保留原有檔案 shell> ls archive.tar archive.tar.gz create.sql sakila-data.sql sakila-schema.sql world-schema.sql shell> gunzip archive.tar.gz shell> ls archive.tar create.sql sakila-data.sql sakila-schema.sql world-schema.sql 將一組檔案壓縮到一個單獨的檔案中 shell> cat *.sql | gzip > archive.gz #壓縮一組檔案 shell> ls archive.gz create.sql sakila-data.sql sakila-schema.sql world-schema.sql b) 檢查壓縮比 被壓縮檔案的壓縮比可以使用 ‘-l’ 選項來進行檢驗。 shell> gzip -l archive.tar.gz #檢查壓縮率 compressed uncompressed ratio uncompressed_name 763759 3655680 79.1% archive.tar c) 解壓檔案 Gunzip 用來解壓檔案,在這裡,原有的(壓縮)檔案在被解壓後同樣會被刪除。使用 -c選項來保留原始檔案。 shell> gzip -d archive.tar.gz 或 shell> gunzip archive.tar.gz shell> ls archive.gz archive.tar create.sql sakila-data.sql sakila-schema.sql world-schema.sql
更多細節可以參考 gzip 主頁 。
Bzip2 / Bunzip2
同 gzip 一樣,Bzip2 也是一個壓縮工具,與其他傳統的工具相比,它可以將檔案壓縮到更小,但其缺點為:執行速度比 gzip 慢。
基本用法如下:
a) 壓縮檔案 一般情況下,針對壓縮而言,Bzip2 不用什麼選項,將被壓縮的檔案被傳遞為它的引數。 每個檔案被單獨壓縮,且壓縮檔案以 ‘bz2′ 為字尾名。 shell> bzip2 *.sql shell> ls create.sql.bz2 sakila-data.sql.bz2 sakila-schema.sql.bz2 world-schema.sql.bz2 檔案壓縮 使用 ‘-k’ 選項可以使得在壓縮或解壓縮之後保留原有的檔案。 shell> bzip2 -k *.sql #在壓縮後保留原有檔案 shell> ls create.sql sakila-data.sql sakila-schema.sql world-schema.sql create.sql.bz2 sakila-data.sql.bz2 sakila-schema.sql.bz2 world-schema.sql.bz2 b) 解壓 ‘-d’ 選項被用來解壓縮。 shell> bzip2 -d *.bz2 shell> ls create.sql sakila-data.sql sakila-schema.sql world-schema.sql shell> bunzip2 *.bz2 shell> ls create.sql sakila-data.sql sakila-schema.sql world-schema.sql bunzip2 可以解壓字尾名為 bz2, bz, tbz2 和 tbz 的檔案。帶有 tbz2 和 tbz 的檔案在壓縮後,字尾名將變為’.tar’ 。
7-zip
7-zip 是另一個開源壓縮軟體。它使用 7z 這種新的壓縮格式,並支援高壓縮比。因此,它被認為是比先前提及的壓縮工具更好的軟體。在 Linux 下,可以通過 p7zip 軟體包得到,該軟體包裡包含 3 個二進位制檔案: 7z, 7za 和 7zr,可以參考 p7zip wiki 來了解這三個二進位制檔案之間的不同。歸檔檔案以 .7z 為字尾名。
基本用法如下:
a) 建立歸檔 shell> 7za a -t7z archive.7z *.sql #建立一個歸檔檔案 7-Zip (A) 9.20 Copyright (c) 1999-2010 Igor Pavlov 2010-11-18 p7zip Version 9.20 (locale=zh_CN.UTF-8,Utf16=on,HugeFiles=on,1 CPU) Scanning Creating archive archive.7z Compressing create.sql Compressing sakila-data.sql Compressing sakila-schema.sql Compressing world-schema.sql Everything is Ok shell> ls archive.7z create.sql sakila-data.sql sakila-schema.sql world-schema.sql b) 列出歸檔包含檔案 shell> 7za l archive.7z #列出歸檔中包含的檔案 7-Zip (A) 9.20 Copyright (c) 1999-2010 Igor Pavlov 2010-11-18 p7zip Version 9.20 (locale=zh_CN.UTF-8,Utf16=on,HugeFiles=on,1 CPU) Listing archive: archive.7z -- Path = archive.7z Type = 7z Method = LZMA Solid = + Blocks = 1 Physical Size = 554670 Headers Size = 226 Date Time Attr Size Compressed Name ------------------- ----- ------------ ------------ ------------------------ 2015-04-02 23:09:37 ....A 1 554444 create.sql 2015-04-02 22:59:19 ....A 3231472 sakila-data.sql 2015-04-02 22:59:19 ....A 23067 sakila-schema.sql 2015-04-02 22:59:19 ....A 397011 world-schema.sql ------------------- ----- ------------ ------------ ------------------------ 3651551 554444 4 files, 0 folders c) 提取歸檔檔案 shell> rm -rf *.sql shell> 7za e archive.7z 7-Zip (A) 9.20 Copyright (c) 1999-2010 Igor Pavlov 2010-11-18 p7zip Version 9.20 (locale=zh_CN.UTF-8,Utf16=on,HugeFiles=on,1 CPU) Processing archive: archive.7z Extracting create.sql Extracting sakila-data.sql Extracting sakila-schema.sql Extracting world-schema.sql Everything is Ok Files: 4 Size: 3651551 Compressed: 554670 d) 更新歸檔檔案 shell> touch new-file shell> 7za u archive.7z new-file 7-Zip (A) 9.20 Copyright (c) 1999-2010 Igor Pavlov 2010-11-18 p7zip Version 9.20 (locale=zh_CN.UTF-8,Utf16=on,HugeFiles=on,1 CPU) Scanning Updating archive archive.7z e) 從歸檔檔案中刪除檔案 shell> 7za d archive.7z new-file #刪除new-file檔案 7-Zip (A) 9.20 Copyright (c) 1999-2010 Igor Pavlov 2010-11-18 p7zip Version 9.20 (locale=zh_CN.UTF-8,Utf16=on,HugeFiles=on,1 CPU) Updating archive archive.7z Everything is Ok
壓縮效果簡單對比
shell> tar cvf archive.tar *.sql shell> gzip -c archive.tar > archive.tar.gz shell> bzip2 -k archive.tar shell> 7za a -t7z archive.tar.7z archive.tar shell> time gzip -c archive.tar > archive.tar.gz real 0m0.253s user 0m0.158s sys 0m0.094s shell> time bzip2 -k archive.tar real 0m0.687s user 0m0.515s sys 0m0.171s shell> time 7za a -t7z archive.tar.7z archive.tar real 0m2.992s user 0m1.046s sys 0m1.938s shell> ll -h 總用量 5.4M -rw-r--r--. 1 root root 3.5M 4月 3 00:48 archive.tar -rw-r--r--. 1 root root 543K 4月 3 00:55 archive.tar.7z -rw-r--r--. 1 root root 572K 4月 3 00:48 archive.tar.bz2 -rw-r--r--. 1 root root 746K 4月 3 00:55 archive.tar.gz
參考:
http://linux.cn/article-5131-1.html
http://linoxide.com/tools/linux-compress-decompress-tools/
整理自網路
Svoid
2015-04-02
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29733787/viewspace-1551807/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Linux 下最為人熟知的歸檔/壓縮工具Linux
- Linux下常用壓縮格式的壓縮與解壓方法Linux
- linux下的檔案的壓縮和解壓縮Linux
- Linux下常用壓縮格式的壓縮與解壓方法---轉載Linux
- unix和linux下常用壓縮格式的壓縮與解壓方法(轉)Linux
- Linux下檔案的壓縮與解壓Linux
- Android Bitmap的常用壓縮方式Android
- linux常用壓縮解壓複製下載命令Linux
- Linux常用的壓縮命令Linux
- Linux下的壓縮檔案剖析(zt)Linux
- Linux下的壓縮檔案剖析(轉)Linux
- Linux下各壓縮方式測試(壓縮率和使用時間)Linux
- Linux中檔案的壓縮和解壓縮Linux
- Linux下tar,jar壓縮,解壓常用命令LinuxJAR
- Linux 常用的壓縮與解壓縮命令詳解Linux
- linux下壓縮解壓縮命令Linux
- Linux 常用基本命令 壓縮 解壓縮 tarLinux
- Linux常用命令之檔案壓縮與解壓縮命令詳解Linux
- Linux 檔案的壓縮Linux
- linux下檔案打包、壓縮詳解Linux
- 檔案的壓縮與解壓縮zz--linuxLinux
- Linux下檔案的壓縮與打包詳解Linux
- Linux下的tar壓縮解壓縮命令詳解Linux
- Linux下壓縮,解壓縮RAR包(轉)Linux
- Linux 檔案壓縮Linux
- Linux中檔案的壓縮與解壓縮(轉貼)Linux
- Linux下常見檔案格式的壓縮、解壓小結(轉)Linux
- linux檔案壓縮和解壓命令Linux
- Linux系統裡的加密壓縮方式Linux加密
- linux下壓縮、解壓命令大全Linux
- unix系統下常用的解壓縮命令
- linux 壓縮分解檔案Linux
- Linux下對於檔案或者目錄的打包及壓縮、解壓Linux
- Linux下*.tar.gz檔案解壓縮命令Linux
- 常用的壓縮和解壓命令案例
- linux 下面壓縮、解壓.rar檔案Linux
- Linux常用命令(壓縮命令)Linux
- 檔案壓縮和解壓縮