删除文件夹和子文件夹中的所有隐藏文件

Din*_*esh 3 bash terminal solaris

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

che*_*ner 7

使用

find "$some_directory" -type f -name '.*' -delete
Run Code Online (Sandbox Code Playgroud)

如果你想删除隐藏的目录,你需要多加小心,以避免...罗纳德提到的那样.

find "$some_directory" -name '.*' ! -name '.' ! -name '..' -delete
Run Code Online (Sandbox Code Playgroud)

使用任一命令,您应该在没有-delete主要的情况下运行,以验证find返回的文件/目录列表仅包括您确实要删除的文件.

为了完整起见,我应该指出这-delete是GNU的扩展find; 符合POSIX的命令

find "$some_directory" -type f -name '.*' -exec rm '{}' \;
Run Code Online (Sandbox Code Playgroud)

即替换-delete-exec ... \;,...替换为您将用于删除文件的命令行,但替换为实际文件名'{}'.