![Linux:如果沒有找到與我使用的模式相符的文件,如何從 find 指令中取得不同的退出程式碼?](https://rvso.com/image/652700/Linux%EF%BC%9A%E5%A6%82%E6%9E%9C%E6%B2%92%E6%9C%89%E6%89%BE%E5%88%B0%E8%88%87%E6%88%91%E4%BD%BF%E7%94%A8%E7%9A%84%E6%A8%A1%E5%BC%8F%E7%9B%B8%E7%AC%A6%E7%9A%84%E6%96%87%E4%BB%B6%EF%BC%8C%E5%A6%82%E4%BD%95%E5%BE%9E%20find%20%E6%8C%87%E4%BB%A4%E4%B8%AD%E5%8F%96%E5%BE%97%E4%B8%8D%E5%90%8C%E7%9A%84%E9%80%80%E5%87%BA%E7%A8%8B%E5%BC%8F%E7%A2%BC%EF%BC%9F%20.png)
我有一個運行下一個命令的腳本:
find /storage2/hpfiles_staging/ -name \*.gz -mmin +600
然後rsync
將文件發送到遠端位置。
有時,該find
命令不會傳回任何輸出(因為該位置中沒有名為 *.gz、時間為 10 分鐘或更長的檔案)。當發生這種情況時,我想向日誌寫入一條訊息,說明那裡沒有文件。
但是當我運行該find
命令時,無論它是否找到要傳輸的文件,該命令的退出代碼find
始終為“0”(當然,除非存在語法錯誤),因此無法指示我是否在該位置找到了文件。
如果命令未找到文件,是否有任何開關或技巧可以獲得與 0 不同的退出代碼find
?
先致謝
答案1
我不認為你可以影響 find 的退出代碼。您也許應該捕獲 find 的輸出並使用它來確定是否找到了任何檔案。