使用 tar 打包壓縮時遇到 Error exit delayed from previous errors,實際上是前序錯誤的匯總提示。本文歸納三大主因與對應解法。
錯誤指令:tar -cvfz src.tar.gz src
問題:-f 參數要求緊接檔名,但 -fz 使 z 被視為檔名,導致後續 src.tar.gz 變成要打包的來源之一。
正確指令:tar -czvf src.tar.gz src(-f 後直接接檔名)或 tar -cvf src.tar.gz -z src。
現象:打包過程中無法讀取某檔案或進入某子目錄。
排查:
# 找出無讀取權限的檔案
find src -type f ! -perm -u=r
# 找出無執行權限的目錄
find src -type d ! -perm -u=x
修復:
chmod u+r 缺權限檔案
chmod -R u+xr 缺權限目錄
若壓縮檔經 FTP 上傳後解壓報錯,多為傳輸模式未設為二進位。
正確 FTP 操作:
ftp> bin
ftp> put local.tar.gz remote.tar.gz
或使用 scp/rsync 避免模式問題。
tar -tzvf src.tar.gz # 僅列表,不解壓,若無錯誤則檔案完整