Ubuntu
使用 find 和 exec 刪除 txt 文件的 sh 腳本 rm 警告我缺少 exec 的參數
find /full/path/dir -name '*.txt' -exec /bin/rm {} \;
在 shell 中很好,但在 sh 腳本中彈出它以及一些類似的行,讓它每晚從 cronjob 執行,它報告:
find: missing argument to `-exec'
關於一切。我可能在每種組合中都嘗試過反斜杠和引號。我怎樣才能使這項工作?
您的腳本文件中可能有 Windows 行尾。嘗試在其上執行
dos2unix
以轉換它們。您可以在 shell 提示符下重現此錯誤:
$ find ... \;^M
通過按
Ctrl
-v
Ctrl
-添加“^M”的位置m
我無法想像為什麼
find /full/path/dir -name '*.txt' -print0 | xargs -0 rm
行不通。要測試您的 cronjob,請執行以下操作:
find /full/path/to/dir -name '*.txt' -print0 | xargs -0 >/tmp/logfile
這只會回顯 xargs 將刪除的內容,
/tmp/logfile
以便您可以手動檢查。