如果用户的主目录中没有任何文件,则失败
Failing if users don't have any files in their home directories
我在用户目录中查找文件并删除它们时遇到问题,但是当没有文件时我遇到以下错误 "No such file or directory"。谁能建议我如何避免这个错误?
[root@server1 ~]# find /home/*/* -name \* | xargs rm -rf
找到:'/home//': 没有那个文件或目录
没有文件时,你find搜索returns "No such file or directory",因为没有文件时,你描述的目录结构不存在。然后将错误传递给 rm
和 "xargs"。
find /home/ -name \* | xargs rm -rf
应该会在没有警告的情况下为您提供等待的结果,因为 find 不会尝试构建不存在的路径。
不要那样做。 ext2 可以包含除 [=12=]
和 /
文件名以外的任何字符!想想会发生什么,如果一个用户命名一个文件
"hi etc"
在这里,rm -rf
将接收 etc
作为第二个参数,因此如果您的脚本在 /
中执行,您将删除 /etc
目录。有一些选项可以安全地处理带空格的文件名,但如果文件包含换行符,其中一些选项会失败——当然这同样有可能:
"hi
etc"
find
有个删除文件的选项(-delete
),试试用这个。这也将解决您原来的问题。如果那不可能,请阅读有关 find -print0
和 xargs -0
.
的文档
我在用户目录中查找文件并删除它们时遇到问题,但是当没有文件时我遇到以下错误 "No such file or directory"。谁能建议我如何避免这个错误?
[root@server1 ~]# find /home/*/* -name \* | xargs rm -rf
找到:'/home//': 没有那个文件或目录
没有文件时,你find搜索returns "No such file or directory",因为没有文件时,你描述的目录结构不存在。然后将错误传递给 rm
和 "xargs"。
find /home/ -name \* | xargs rm -rf
应该会在没有警告的情况下为您提供等待的结果,因为 find 不会尝试构建不存在的路径。
不要那样做。 ext2 可以包含除 [=12=]
和 /
文件名以外的任何字符!想想会发生什么,如果一个用户命名一个文件
"hi etc"
在这里,rm -rf
将接收 etc
作为第二个参数,因此如果您的脚本在 /
中执行,您将删除 /etc
目录。有一些选项可以安全地处理带空格的文件名,但如果文件包含换行符,其中一些选项会失败——当然这同样有可能:
"hi
etc"
find
有个删除文件的选项(-delete
),试试用这个。这也将解决您原来的问题。如果那不可能,请阅读有关 find -print0
和 xargs -0
.