我正在尝试在 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
当然:)