在linux bash中删除文件夹

4 linux bash regex

我试图在 gnu/linux 中删除另一个文件夹中以“.”开头的所有文件夹。(点),为此我正在使用 find 实用程序,这就是我所拥有的:

find . -iname ^\..* -exec rm -rf {} \;
Run Code Online (Sandbox Code Playgroud)

但它没有做任何事情:(。我已经测试了正则表达式并且效果很好。有什么帮助吗??

非常感谢您的时间。

小智 5

find使用 globbing 语法,您可以使用它-type d来查找目录:

find . -type d -name '.?*' | vim -
Run Code Online (Sandbox Code Playgroud)

在使用 globbing 或使用正则表达式查找文件时,您需要非常小心.hidden,因为您可以很容易地选择.和删除整个文件夹,或者更糟糕的是,匹配..并删除整个父文件夹。考虑以下命令的后果:

/home/someuser bash$ rm -rf .*
Run Code Online (Sandbox Code Playgroud)