我正在尝试了解如何使用带有-exec选项的Linux find命令删除目录,而不会得到一个"没有这样的文件或目录";回答在我的树莓派上,我转到/home/Pi并键入:mkdir testing
所以现在我创建了一个名为/home/pi/testing的新目录。接下来,我尝试使用以下命令删除目录:
find /home/pi/testing -type d -exec rm -rf {} ;
我得到以下回复:
find: '/home/pi/testing': No such file or directory
但是/home/pi/testing目录不见了。因此,这个命令似乎很有效,但为什么";没有这样的文件或目录";错误
Find正在尝试在删除该目录后进入该目录。如果将-depth
选项添加到命令行,find
将以深度优先模式运行,在该模式下,它将尝试在删除目录之前处理目录的内容:
find /home/pi/testing -depth -type d -exec rm -rf {} ;
也就是说,您的find
命令行不是很有用:对于此操作,您通常只运行rm -rf /home/pi/testing
。