這裡整理常見的 Linux 壓縮格式與指令。不同壓縮格式有不一樣的特性:
- .tar - 僅打包多個檔案,無壓縮功能。適合用於保留檔案權限、時戳等資訊
- .gz - 壓縮比適中,壓縮/解壓速度快。適合單一大檔案的快速壓縮
- .tar.gz - 結合 tar 打包與 gzip 壓縮,是 Linux 最常見的壓縮格式。常用於軟體發布
- .tar.xz - 採用 LZMA2 演算法,提供較高壓縮比但耗時較長。適合需要節省空間的發布場景
- .7z - 支援多種壓縮演算法,提供高壓縮比與加密功能。適合需要加密或極致壓縮的場景
- .zip - 通用性高,所有作業系統都支援。適合需要跨平台分享的檔案
以下整理各種壓縮格式的常用指令與進階用法。
.tar
單純打包,沒有壓縮功能。
基本用法
1 2 3 4
| tar cvf file.tar folder
|
進階用法
1 2
| tar xvf file.tar -C /path/to/directory
|
1
| tar cvf file.tar folder --exclude="*.tmp"
|
.gz
單檔壓縮格式,常與 tar 搭配使用。
基本用法
進階用法
.tar.gz
最常見的 Linux 壓縮格式,結合了 tar 打包與 gzip 壓縮。
基本用法
1 2
| tar zcvf file.tar.gz folder
|
進階用法
1
| tar zxvf file.tar.gz file1 file2
|
.tar.xz
提供較高壓縮比的格式。
基本用法
1 2
| tar Jcvf file.tar.xz folder
|
進階用法
1
| XZ_OPT=-9 tar Jcvf file.tar.xz folder
|
.7z
提供高壓縮比與加密功能。
基本用法
進階用法
1 2
| 7z a -p"password" file.7z folder
|
.zip
通用性最高的壓縮格式。
基本用法
進階用法
1 2
| zip -e -r file.zip folder
|
1
| zip -r --preserve-permissions file.zip folder
|
常見問題處理
1. 檔案權限問題
1 2 3 4 5
| sudo tar xvf file.tar
chmod 644 file.tar
|
2. 中文檔名亂碼
1 2
| unzip -O CP936 file.zip unzip -O BIG5 file.zip
|
3. 空間不足
1 2
| du -sh folder du -sh file.tar.gz
|
4. 檢查壓縮檔完整性
1 2 3 4 5 6 7 8
| tar tvf file.tar > /dev/null
unzip -t file.zip
7z t file.7z
|
格式比較
格式 | 壓縮比 | 速度 | 跨平台 | 加密 | 常見用途 |
---|
.tar | 無壓縮 | 快 | ✓ | × | 純打包 |
.gz | 中 | 快 | ✓ | × | 單檔壓縮 |
.tar.gz | 中 | 快 | ✓ | × | Linux 軟體發布 |
.tar.xz | 高 | 慢 | ✓ | × | Linux 軟體發布 |
.7z | 高 | 慢 | ✓ | ✓ | 檔案備份、加密 |
.zip | 中 | 中 | ✓ | ✓ | 跨平台分享 |
參考資料
- GNU tar 手冊:https://www.gnu.org/software/tar/manual/
- 7-Zip 官方文件:https://www.7-zip.org/
- Info-ZIP 文件:http://infozip.sourceforge.net/
也許你也會想看看