如果用户的主目录中没有任何文件,则失败



当我在用户目录中查找文件并删除它们时,我遇到了一个问题,但当没有文件时,我会收到下面的错误"No such file or directory"。有人能建议我如何避免这个错误吗?

[root@server1 ~]# find /home/*/* -name * | xargs rm -rf 

find:'/home//':没有这样的文件或目录

不要那样做。ext2可以包含除文件名的/之外的任何字符!想想如果用户将文件命名为会发生什么

"hi etc"

这里,rm -rf将接收etc作为第二个参数,所以如果您的脚本是在/中执行的,那么您将删除/etc目录。有一些选项可以安全地处理带有空格的文件名,但如果文件包含换行符,其中一些选项会失败——当然这也是可能的:

"hi
etc"

find有一个删除文件的选项(-delete(,请尝试使用此选项。这也将解决您最初的问题。如果不可能,请阅读有关find -print0xargs -0的文档。

当没有文件时,您的查找搜索会返回"no such file or directory",因为当没有文件的时候,您描述的目录结构就不存在了。然后,错误通过"xargs"传递给rm

find /home/ -name * | xargs rm -rf 

应该会在没有警告的情况下得到您正在等待的结果,因为find不会尝试构建不存在的路径。

相关内容

最新更新