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