Shell 如果用户不';他们的主目录中没有任何文件

Shell 如果用户不';他们的主目录中没有任何文件,shell,find,xargs,Shell,Find,Xargs,当我在用户目录中查找文件并删除它们时,我遇到了一个问题,但当没有文件时,我会遇到下面的错误“没有这样的文件或目录”。有人能建议我如何避免这个错误吗 [root@server1 ~]# find /home/*/* -name \* | xargs rm -rf 查找:'/home/':没有这样的文件或目录如果没有文件,您的查找搜索将返回“没有这样的文件或目录”,因为没有文件时,您描述的目录结构不存在。然后用“xargs”将错误传递到rm 应该在没有警告的情况下得到您正在等待的结果,因为fin

当我在用户目录中查找文件并删除它们时,我遇到了一个问题,但当没有文件时,我会遇到下面的错误“没有这样的文件或目录”。有人能建议我如何避免这个错误吗

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

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

如果没有文件,您的查找搜索将返回“没有这样的文件或目录”,因为没有文件时,您描述的目录结构不存在。然后用“xargs”将错误传递到
rm


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

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

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

"hi
etc"

find
具有删除文件的选项(
-delete
),请尝试使用此选项。这也将解决您原来的问题。如果不可能,请阅读有关
find-print0
xargs-0

是的文档。我可以成功删除文件/目录,但仍然存在错误,即当我再次执行它们时,没有这样的文件或目录。如何避免这个错误?[mak@node1testscripts]$find/home/*/*-name*| xargs rm-rf[mak@node1testscripts]$find/home/*/*-name*| xargs rm-rf find:'/home/*/*':没有这样的文件或目录[mak@node1testscripts]$find/home/*/*-name*| xargs rm-rf find:'/home/*/*':没有这样的文件或目录嗯,我不知道你想做什么,但对我来说,直接与rm合作似乎是个好主意。你以前为什么需要这个“发现”?您可以执行类似“rm-rf/home/*”的操作,或者只删除文件?我正在尝试每周运行一次cron作业,它应该删除/home/*/*中用户的目录/文件。如果没有找到任何文件,我不会出错。如果您想删除所有用户的所有文件,“rm-rf/home/*”应该是一个合适的解决方案。您不需要find命令。
"hi
etc"