tar 核心參數 (必須三選一)
| 參數 | 功能 | 別名 |
-c | 建立封存檔 | --create |
-x | 解開封存檔 | --extract |
-t | 列出內容 | --list |
-r | 追加檔案 | --append |
-u | 更新檔案 | --update |
壓縮格式參數 (三選一)
| 參數 | 格式 | 副檔名 | 特點 |
-z | gzip | .tar.gz / .tgz | 速度快、相容性佳 |
-j | bzip2 | .tar.bz2 | 壓縮率高、較慢 |
-J | xz | .tar.xz | 壓縮率最高、最慢 |
-Z | compress | .tar.Z | 舊格式、少用 |
常用輔助參數
| 參數 | 功能 |
-v | 顯示處理過程 |
-f | 指定檔案名 (必須放最後) |
-C | 指定解壓目錄 (解壓時使用) |
-p | 保留原始權限 |
-P | 使用絕對路徑 (保留 / 開頭) |
--exclude | 排除檔案/目錄 |
-W | 驗證封存檔完整性 |
實戰範例集
打包壓縮
# gzip 壓縮
tar -czvf backup.tar.gz /home/user/data/
# bzip2 壓縮 (較小)
tar -cjvf backup.tar.bz2 /home/user/data/
# 排除特定目錄
tar -czvf backup.tar.gz --exclude='*.log' --exclude='node_modules' /home/user/project/
# 分割大檔案 (每 100MB)
tar -czvf - /home/user/data/ | split -b 100M - backup.tar.gz.part.
解壓縮
# 解壓到當前目錄
tar -xzvf backup.tar.gz
# 解壓到指定目錄
tar -xzvf backup.tar.gz -C /tmp/restore/
# 僅查看內容
tar -tzvf backup.tar.gz
# 解壓單一檔案
tar -xzvf backup.tar.gz home/user/data/important.txt
zip / unzip 指令
壓縮
# 遞歸壓縮目錄
zip -r project.zip /home/user/project/
# 最高壓縮等級
zip -9 -r project.zip /home/user/project/
# 加密壓縮
zip -e secret.zip secret.txt
解壓縮
# 解壓到當前目錄
unzip project.zip
# 解壓到指定目錄
unzip project.zip -d /tmp/project/
# 查看內容不解壓
unzip -l project.zip
# 覆蓋模式不詢問
unzip -o project.zip
rar / unrar (需額外安裝)
# 壓縮
rar a backup.rar /home/user/data/
# 解壓
unrar x backup.rar
進階技巧:管線串流處理 (不落地)
# 遠端備份透過 SSH 直接壓縮傳輸
tar -czf - /home/user/data/ | ssh user@server "cat > backup.tar.gz"
# 遠端解壓還原
ssh user@server "cat backup.tar.gz" | tar -xzf - -C /restore/path/
總結建議
- 日常備份首選
tar -czvf (gzip) 平衡速度與相容性
- 長期歸檔考慮
tar -cJvf (xz) 節省空間
- 跨平台分享給 Windows 用戶用
zip
- 大檔案傳輸善用
split 分割與管線串流