我需要删除当前文件夹及其子文件夹中的所有隐藏文件。有没有办法在不创建脚本的情况下使用单行命令做到这一点?
使用
find "$some_directory" -type f -name '.*' -delete
如果你也想删除隐藏的目录,你需要多加注意避免.
和..
,正如罗纳德提到的。
find "$some_directory" -name '.*' ! -name '.' ! -name '..' -delete
使用任一命令,您都应该先在没有-delete
主命令的情况下运行,以验证find
返回的文件/目录列表是否仅包含您真正要删除的文件。
为了完整起见,我应该指出-delete
是find
的GNU扩展;符合POSIX的命令将是
find "$some_directory" -type f -name '.*' -exec rm '{}' ;
即,将-delete
替换为-exec ... ;
,...
替换为用于删除文件的命令行,但实际文件名替换为'{}'
。
对于我的Netgear Stora,我想删除所有隐藏的.webview .thumbnails。苹果双等文件和文件夹。这适用于/home/yourusername/文件夹:
find -type f -name '.*' ! -name '.' ! -name '..' -exec rm -fv '{}' ;
然后
find -type d -name '.*' ! -name '.' ! -name '..' -exec rm -frdv '{}' ;