删除所有不使用“*”的文件

删除所有不使用“*”的文件

我想删除文件夹 /home/user 中的所有文件和文件夹,我正在使用命令

rm -rf /home/user/*

没有成功,接下来我尝试:

cd /home/user;rm -rf *

输出结果如下

rm: cannot lstat `*': No such file or directory

我该如何解决?如果我逐个删除文件,它可以工作,但使用“*”则不行。

答案1

您的用户是否对要删除的文件具有读取权限?文件名是什么样的?如果文件名以.开头可能不会被捡到*

要删除当前目录中以 开头的文件.,可以使用find管道到 的老技巧xargs

find . -name '.*' -maxdepth 1 -type f | xargs rm

首先尝试不使用| xargs rm来看看返回的文件是否与find你的预期相符,然后使用管道再次运行它。

如果您还想递归查找文件,只需-maxdepth 1从命令中取出即可。

答案2

关于什么:

find /home/user -delete

但要小心 - 首先阅读 find 的手册页!或者在特定目录中进行一些训练。

答案3

我只是用rm -rf /home/user

相关内容