find: `./folder': No such file or directory 錯誤處理


這是我正在處理的目錄的內容:

misha@hp-laptop:~/work/c/5$ ls -l total 8 -rw-rw-r-- 1 misha misha 219 May 20 15:37 demo.c drwxrwxr-x 2 misha misha 4096 May 20 16:07 folder -rw-rw-r-- 1 misha misha 0 May 20 16:06 test

現在,我想從這個目錄中刪除文件之外的所有內容。demo.c..下面是我想出的命令:

find . ! \( -name demo.c -o -name . \) -exec rm -Rf {} \;

它所做的和你想要做的完全一樣(意思是,文件test和目錄folder),但同時也會顯示以下錯誤消息:

find: `./folder': No such file or directory

因為find./folder作為一個目錄,當它第一次讀取目錄時.,在考慮它是否與find標准或對其執行任何行動。它不知道該操作將刪除該目錄,因此在執行該操作后,它將嘗試下降到該目錄以掃描其內容。但是,當它這樣做時,目錄就不再存在了。

有多種方法來解決這個問題。還沒有提到的是使用-prune行動。這說明find不進入與測試匹配的目錄:

find . ! \( -name demo.c -o -name . \) -exec rm -Rf {} \; -prune
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM