問題: 當我用tar命令來創建一個壓縮文件時,總在執行過程中失敗,並且拋出一個錯誤說明"tar:由於前一個錯誤導致失敗退出"("Exiting with failure status due to previous errors"). 什么導致這個錯誤的發生,要如何解決?
當你執行tar命令時,遇到了下面的錯誤,那么最有可能的原因是對於你想用tar命令壓縮的某個文件中,你並不具備其讀權限。
-
tar:Exitingwith failure status due to previous errors
那么我們要如何確定引起錯誤的這個(些)文件呢?或者如何確定其它的錯誤根源?
事實上tar命令應該會打印出所謂的“上一個錯誤”("previous errors")到底是什么錯誤,但是如果你讓tar運行在詳細模式(即verbose mode,例如, -cvf),那么你會很容易錯失這些信息。要找到這些信息,你可以像下面那樣,把tar的標准輸出(stdout)信息過濾掉。
-
# tar zcvf bak_lamp.tar.gz /var/spool/cron/ /etc/ /root/scripts/ /application/data/ /application/apache/logs/ /application/apache/conf/ >/dev/null
然后你會看到tar輸出的標准錯誤(stderr)信息。(LCTT 譯注:自然,不用 v 參數也可以。)
-
# tar zcvf bak_lamp.tar.gz /var/spool/cron/ /etc/ /root/scripts/ /application/data/ /application/apache/logs/ /application/apache/conf/ >/dev/null
-
tar: Removing leading `/' from member names #出現錯誤原因(1)
-
tar: /root/scripts: Cannot stat: No such file or directory #出現錯誤原因(2)
-
tar: Exiting with failure status due to previous errors
你可以從上面的案例中看到,引起錯誤的原因是(1)“沒有搜索到文件或目錄”(tar: /root/scripts: Cannot stat: No such file or directory)要解決這個問題,只要簡單地創建/root/scripts這個文件或目錄即可;(2)“從參數名稱最后面刪除‘/’ ”,然后重新執行tar命令即可。