在 Linux Bash 中删除文件夹

在 Linux Bash 中删除文件夹

我正在尝试在 gnu/linux 中删除另一个文件夹内以“.”(点)开头的所有文件夹,为此我使用了查找实用程序,这是我所得到的:

find . -iname ^\..* -exec rm -rf {} \;

但它什么也没做:(。我已经测试了正则表达式并且运行良好。有什么帮助吗?

非常感谢您抽出时间。

答案1

find使用通配符语法,你可以使用它-type d来查找目录:

find . -type d -name '.?*' | vim -

你需要极其使用正则表达式查找.hidden文件时要小心,因为您很容易找到.并删除整个文件夹,甚至更糟的是,匹配..后您会删除整个父文件夹。考虑以下命令的后果:

/home/someuser bash$ rm -rf .*

答案2

-name-iname使用 glob,而不是正则表达式。请尝试使用-regex-iregex

答案3

find . -type d -iname ".*" -not -iname "." -not -iname ".."

答案4

如果是一个选项,您可以简单地使用:print **/.*(/)或者rm当然:)

相关内容