2014-02-11 207 views
2

我需要删除当前文件夹及其子文件夹中的所有隐藏文件。有没有办法使用单行命令而不创建脚本?删除文件夹和子文件夹中的所有隐藏文件

+0

你的意思是'find $ some_directory'。*'-delete'? –

+0

我通常使用'。* *'来避免那个“。”。或“..”匹配。如果你正在执行'rm -rf。?? *'(这不会从子目录中删除点文件),这是特别有用的。 – Ronald

+1

小问题:'。* *'会错过“有效”的点文件或像'.a'这样的目录。 – chepner

回答

4

使用

find "$some_directory" -type f -name '.*' -delete 

如果你想删除隐藏的目录,以及,你需要采取一些更加小心,以避免...,由罗纳德提及。

find "$some_directory" -name '.*' ! -name '.' ! -name '..' -delete 

用任何一个命令,你应该没有-delete主首先运行,以验证find回报包括文件/目录列表文件只你真的要删除。

为了完整,我应该指出-delete是一个GNU扩展到find;在符合POSIX标准的命令是

find "$some_directory" -type f -name '.*' -exec rm '{}' \; 

即与-exec ... \;取代-delete,与...你会用删除文件的命令行替换,但与'{}'代替实际的文件名。

+1

glob模式''。[^。] *''应该找到不是'.'或'..'的隐藏文件。 –

+0

工作正常,但在我的操作系统中找不到-delete标志。所以我用这个find“$ some_directory”-type f -name'。*'| xargs rm – Dinesh

相关问题