Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學

Linux tar 指令完整教學:打包、壓縮、解壓、列表、權限保留與差異備份

編輯:Linux 系統常見問題解答

核心觀念:打包 ≠ 壓縮

  • 打包:將多個檔案/目錄合併成單一檔案(.tar),不減少體積。
  • 壓縮:透過演算法減小檔案體積(gzip、bzip2、xz)。
  • Linux 慣例:先 tar 打包,再用壓縮工具壓縮,產生 .tar.gz、.tar.bz2、.tar.xz。

常用選項速查表

選項長選項說明
-c--create建立新封存檔
-x--extract解開封存檔
-t--list列出封存檔內容
-r--append向現有封存檔追加檔案
-u--update更新封存檔中較新的檔案
-z--gzip透過 gzip 壓縮/解壓(.gz)
-j--bzip2透過 bzip2 壓縮/解壓(.bz2)
-J--xz透過 xz 壓縮/解壓(.xz)
-v--verbose顯示處理過程
-f--file指定封存檔名稱(必須是最後一個選項)
-p--preserve-permissions保留原始權限(還原時需 root)
-P--absolute-names使用絕對路徑(不移除前導 /)
-C--directory指定解壓/打包的工作目錄
--exclude排除符合樣式的檔案

實戰範例

1. 僅打包(不壓縮)

tar -cvf log.tar log2017.log

2. 打包並用 gzip 壓縮(最常用)

tar -zcvf log.tar.gz log2017.log

3. 打包並用 bzip2 壓縮(壓縮率較高)

tar -jcvf log.tar.bz2 log2017.log

4. 打包並用 xz 壓縮(壓縮率最高、速度較慢)

tar -Jcvf log.tar.xz log2017.log

5. 查看封存檔內容

tar -tvf log.tar
tar -ztvf log.tar.gz
tar -jtvf log.tar.bz2

6. 解壓縮

tar -xvf log.tar
tar -zxvf log.tar.gz
tar -jxvf log.tar.bz2
tar -Jxvf log.tar.xz

7. 解壓至指定目錄

tar -zxvf log.tar.gz -C /tmp/restore

8. 保留權限備份(需 root)

tar -zcvpf backup.tar.gz /etc /home/user

9. 排除特定目錄/檔案

tar -zcvf backup.tar.gz --exclude='*.log' --exclude='cache' /var/www

10. 差異/增量備份(搭配 -g 快照檔)

# 首次完整備份
tar -g backup.snar -zcvf full.tar.gz /data

# 之後每日增量備份
tar -g backup.snar -zcvf incr-$(date +%F).tar.gz /data

檔案副檔名對照表

副檔名解壓指令
.tartar -xvf
.tar.gz / .tgztar -zxvf
.tar.bz2tar -jxvf
.tar.xztar -Jxvf
.gzgzip -d / gunzip
.bz2bzip2 -d / bunzip2
.xzxz -d / unxz
.zipunzip
.rarunrar e

小結

熟記 tar -zcvf(打包壓縮)、tar -zxvf(解壓)、tar -ztvf(列表)三大黃金組合,搭配 -p 保留權限、-C 指定目錄、--exclude 排除垃圾檔,即可應付 95% 的備份壓縮場景。

Copyright © Windows教程網 All Rights Reserved