tar — 標準磁帶歸檔工具 (事實上通用打包格式)
核心語法
tar [主選項] [輔助選項] 檔案或目錄
主選項 (互斥,必選一)
| 選項 | 動作 | 典型場景 |
| -c | 建立新歸檔 | 備份目錄 |
| -x | 解壓縮/提取 | 還原備份 |
| -t | 列出內容 | 檢查備份內容 |
| -r | 追加檔案 | 增量更新 |
| -u | 更新檔案 | 同步修改 |
輔助選項 (常用組合)
| 選項 | 功能 | 範例 |
| -f | 指定歸檔檔名 (必用) | -f backup.tar |
| -v | 顯示處理過程 | -cvf |
| -z | gzip 壓縮/解壓 (.tar.gz/.tgz) | -czvf |
| -j | bzip2 壓縮/解壓 (.tar.bz2) | -cjvf |
| -J | xz 壓縮/解壓 (.tar.xz) | -cJvf |
| -p | 保留權限/屬性 (root 備份必加) | -cpzvf |
| -C | 切換目錄後操作 | -C /mnt/data -czvf /backup.tgz . |
| --exclude | 排除模式 | --exclude='*.log' --exclude=node_modules |
| -k | 不覆蓋既有檔案 | |
| -m | 不還原修改時間 | |
經典實戰範例
# 1. 完整備份 /etc 至 /backup/etc.tar.gz
tar -czvf /backup/etc.tar.gz /etc
# 2. 排除日誌、快取備份 /var/www
tar -czvf /backup/www.tar.gz /var/www --exclude='*.log' --exclude='cache'
# 3. 解壓至指定目錄
tar -xzvf /backup/etc.tar.gz -C /tmp/restore
# 4. 僅檢視不解壓
tar -tzvf /backup/etc.tar.gz | head -20
# 5. 遠端備份 (透過 SSH 管道)
tar -czf - /etc | ssh user@backupserver "cat > /backup/etc_$(date +%F).tar.gz"
# 6. 定時備份 (crontab)
0 2 * * * tar -czf /backup/daily_$(date +\%F).tar.gz /etc /home /var/www --exclude='*.tmp'
需備份的關鍵目錄清單
/etc — 所有系統/服務配置
/var — 服務資料 (郵件、資料庫、WWW、日誌、DHCP 租約)
/home — 使用者資料
/root — 管理員資料
/opt — 第三方軟體
可略過的目錄
/proc、/sys — 虛擬檔案系統
/dev — 裝置節點 (重裝系統自動建立)
/run、/tmp — 執行期暫存
unzip — ZIP 格式解壓工具
常用參數
unzip -l file.zip # 僅列出內容
unzip -t file.zip # 測試完整性
unzip -q file.zip # 安靜模式
unzip -o file.zip # 覆蓋不提示
unzip -d /target file.zip # 指定解壓目錄
unzip -x file.zip exclude* # 排除模式
unzip -P password file.zip # 密碼保護 (不安全,明文參數)
gunzip / gzip — 單檔壓縮工具
關鍵點
gunzip 為 gzip -d 硬連結,功能相同
- 預設副檔名
.gz
- 僅能壓縮單一檔案,目錄需先
tar 打包
常用參數
gzip file.txt # 壓縮 → file.txt.gz (原檔消失)
gzip -c file.txt > file.gz # 保留原檔,輸出至標準輸出
gzip -d file.gz # 解壓
gzip -l file.gz # 列出壓縮比、原始大小
gzip -9 file.txt # 最高壓縮等級 (1-9,預設 6)
gzip -r dir/ # 遞歸壓縮目錄下所有檔案 (各自獨立 .gz)
現代替代工具對比
| 工具 | 壓縮比 | 速度 | 記憶體 | 適用場景 |
| gzip | 中 | 快 | 低 | 通用、日誌輪轉、網路傳輸 |
| bzip2 | 高 | 慢 | 中 | 原始碼發布、長期存檔 |
| xz | 最高 | 極慢 | 高 | 軟體套件分發 (.tar.xz)、嵌入式韌體 |
| zstd | 高 | 極快 | 可調 | 即時備份、ZFS 壓縮、Linux 核心壓縮 (新標準) |
| lz4 | 低 | 極快 | 極低 | 即時壓縮、記憶體壓縮、Kafka 訊息壓縮 |