作者 主題: find 搭配 -exec 疑問  (閱讀 2337 次)

0 會員 與 1 訪客 正在閱讀本文。

bojing

  • 憂鬱的高中生
  • ***
  • 文章數: 135
    • 檢視個人資料
find 搭配 -exec 疑問
« 於: 2021-01-05 11:36 »
我做個實驗,在/tmp 中建立一個目錄 dir100,然後下指令
# find /tmp -name 'dir*' -exec rm -rf {} \;

結果該目錄是被刪除了,但螢幕上會出現訊息:
find : '/tmp/dir100' : No such file or directory

不知是甚麼原因

twu2

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 5416
  • 性別: 男
    • 檢視個人資料
    • http://blog.teatime.com.tw/1
Re: find 搭配 -exec 疑問
« 回覆 #1 於: 2021-01-05 16:11 »
strace 跑一下就看的到相關的 i/o 動作.

應該是 find 會先處理找到的東西, 然後再往下一層找.
因為你的動作是 rm -rf, 所以找到後, 被整個被刪除了, 這時要再打開那個目錄找下一層, 就會有那個錯誤.

bojing

  • 憂鬱的高中生
  • ***
  • 文章數: 135
    • 檢視個人資料
Re: find 搭配 -exec 疑問
« 回覆 #2 於: 2021-01-26 13:02 »
嗯,應該是這樣沒錯,如果設計成刪除檔案就沒問題。甘溫