我已经搜索了一段时间,但似乎不能得到一个简洁的解决方案.我有一个Mac的文件夹,我想清理所有隐藏的文件/目录-任何隐藏的东西.它曾经是一个Eclipse的工作区,有很多.metadata/.svn的东西,我很好,所有这些都被删除.我怎么能做到这一点(无论是用shell脚本,Applescript等).提前感谢!
cigdeys31#
find . -name ".*" -exec rm -rf {} \;我不知道MAC操作系统,但这就是你在大多数 *nix环境中找到它们的方式。find . -name ".*" -exec rm -rf {} \;个为了摆脱他们...做第一次查找,并确保该列表是你想要的,然后才删除他们所有。第一个"."意味着来自你当前的目录。还要注意第二个".*"可以改为".svn*"或者其他任何更具体的名字;上面的语法只是查找所有隐藏文件,但是你可以更有选择性.我经常使用这个语法来删除旧代码中所有的.svn目录.
find . -name ".*" -exec rm -rf {} \;
"."
".*"
".svn*"
lo8azlld2#
您需要非常小心地测试您使用的任何命令,因为您可能不希望删除当前目录(.)、父目录(..)或所有文件。这应该只包括以点开始的文件和目录,不包括.和..。
.
..
find . -mindepth 1 -name '.*' -delete
kse8i1jr3#
rm -rf `find . -type f -regex '.*/\.+.+'`
如果要删除目录,请将-type f更改为-type d。如果要删除文件和目录,请删除-type f。更新感谢评论者:对于包含空格的文件或目录,此操作失败。请使用a better answer
-type f
-type d
v9tzhpje4#
find /path -iname ".*" -type f -delete ;
Ruby(1.9+)
ruby -rfileutils -e 'Dir["**/.*"].each{|x| FileUtils.rm(x) if File.file?(x)}'
bf1o4zei5#
我用这个命令来删除空目录。它从底部开始,一直到顶部。所以,如果你引用当前路径,它不会失败。
find . -depth -type d -empty -exec rmdir {} \;
g2ieeal76#
我发现这非常好用(至少在Linux上的Bash中是这样):
find . -wholename '*/.*' -type f | sed -n '/\/\.[^\/]\+$/p' | xargs rm
您可以根据自己的喜好调整sed调用中的正则表达式。但要小心:在我的例子中,我有很多名为.gitignore或.gitkeep的隐藏文件必须保留。2一定要检查列表,看看其中是否有您要保留的内容。我发现这个变体非常有用,它可以删除像._ANYTHING这样的文件(通常是垃圾文件或临时文件):
sed
.gitignore
.gitkeep
._ANYTHING
find . -wholename '*/.*' -type f | sed -n '/\/\._[^\/]\+$/p' | xargs rm
6条答案
按热度按时间cigdeys31#
find . -name ".*" -exec rm -rf {} \;
我不知道MAC操作系统,但这就是你在大多数 *nix环境中找到它们的方式。
find . -name ".*" -exec rm -rf {} \;
个为了摆脱他们...做第一次查找,并确保该列表是你想要的,然后才删除他们所有。
第一个
"."
意味着来自你当前的目录。还要注意第二个".*"
可以改为".svn*"
或者其他任何更具体的名字;上面的语法只是查找所有隐藏文件,但是你可以更有选择性.我经常使用这个语法来删除旧代码中所有的.svn目录.lo8azlld2#
您需要非常小心地测试您使用的任何命令,因为您可能不希望删除当前目录(
.
)、父目录(..
)或所有文件。这应该只包括以点开始的文件和目录,不包括
.
和..
。kse8i1jr3#
如果要删除目录,请将
-type f
更改为-type d
。如果要删除文件和目录,请删除
-type f
。更新感谢评论者:对于包含空格的文件或目录,此操作失败。请使用a better answer
v9tzhpje4#
Ruby(1.9+)
bf1o4zei5#
我用这个命令来删除空目录。它从底部开始,一直到顶部。所以,如果你引用当前路径,它不会失败。
g2ieeal76#
我发现这非常好用(至少在Linux上的Bash中是这样):
您可以根据自己的喜好调整
sed
调用中的正则表达式。但要小心:在我的例子中,我有很多名为
.gitignore
或.gitkeep
的隐藏文件必须保留。2一定要检查列表,看看其中是否有您要保留的内容。我发现这个变体非常有用,它可以删除像
._ANYTHING
这样的文件(通常是垃圾文件或临时文件):