許多 Linux 使用者對 tar 命令的具體用法感到陌生,其實透過不同參數組合,tar 能夠高效完成檔案打包、壓縮、解壓及排除特定檔案等任務。本文將系統整理 tar 的核心語法、常用選項與實戰範例,幫助你快速掌握這項必備技能。

tar [主選項+輔助選項] 檔案或目錄
c 建立新檔案、x 解壓縮、t 列出內容。-z (gzip)、-j (bzip2)、-v 顯示過程、-f 指定檔名(緊接在 -f 之後)、-p 保留原屬性、--exclude 排除檔案。# 僅打包
tar -cvf /tmp/etc.tar /etc
# 打包並 gzip 壓縮
tar -zcvf /tmp/etc.tar.gz /etc
# 打包並 bzip2 壓縮
tar -jcvf /tmp/etc.tar.bz2 /etc
慣例副檔名:.tar、.tar.gz/.tgz、.tar.bz2。使用絕對路徑時會出現 Removing leading '/' 警告,屬正常現象。
tar -ztvf /tmp/etc.tar.gz
因使用 gzip 壓縮,查看時必須加 -z 參數。
cd /usr/local/src
tar -zxvf /tmp/etc.tar.gz
解壓後會在當前目錄建立 etc 子目錄,檔案屬性可能與原始 /etc 不同。
cd /tmp
tar -zxvf /tmp/etc.tar.gz etc/passwd
先用 tar -ztvf 確認內部路徑(不含根目錄 /),再指定相對路徑解壓。
tar --exclude /home/dmtsai -zcvf myfile.tar.gz /home/* /etc
預設使用絕對路徑打包會保留完整路徑,解壓時會還原完整結構。使用 -C 可變更工作目錄,只打包檔案名稱:
# 打包時切換至 /home/usr2,只存 file2
tar -cvf file2.tar -C /home/usr2 file2
# 解壓時指定目標目錄
tar -xvf file2.tar -C /home/usr2
若不加 -C 直接指定目標路徑會報錯 Not found in archive。
掌握 tar 的主選項與輔助選項組合,即可輕鬆應對日常備份、部署與遷移需求。建議多實操上述範例,熟悉 -C、--exclude 等進階用法,提升系統管理效率。