命令以递归方式删除MAC OS Terminal上的所有文件和文件夹,包括隐藏的文件和文件夹?


11

rm -rf * 将删除所有文件和文件夹,但不会删除隐藏的文件和文件夹。

rm -rf .* 会删除所有隐藏的文件和文件夹,但不会删除未隐藏的文件和文件夹,对吗?

为了删除所有文件和文件夹(包括隐藏的文件和文件夹),一种命令应该键入什么命令?(。和..除外);?

Answers:


13
rm -rf * .*

会成功的


1
没有! .*将会扩展到当前目录中的所有不可见条目,包括 .. -,这意味着使用.*作为参数rm -rf将尝试删除当前所在目录之上的目录及其所有内容。rm会拒绝这样做,但我不认为要依靠这种安全...
Gordon Davisson

@戈登·戴维森:我已经创建了一个目录。我已经添加了文件,包括隐藏文件。我已经执行了该命令。它已递归删除该目录中的所有内容,并且尚未删除该目录上的任何内容。能否请您澄清您的评论?
MEM

感谢您对以上评论的澄清。现在我明白你的意思了。还有其他建议吗?
MEM

如何find-delete标志一起使用...
user1055604 2012年

1
在这种情况下,@ GordonDavisson rm应该打印一条rm: "." and ".." may not be removed消息–它不会自动删除父目录。
slhck

1

尝试这个:

find . -mindepth 1 -delete

我不确定-mindepth是否所有的实现都支持它find;如果您没有它,-path则应提供另一种方法来防止尝试删除它.

find . -path "*/*" -delete

BSD find也有该选项,是的。
slhck

1

只需使用此命令即可根据特定条件清除文件/目录:

# tmpwatch -fauv 0 .

0

shopt -s dotglob还使*包含文件以句点开头。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.