Linux同一目录下多文件夹内指定类型文件快速删除方法咨询
Linux批量删除多子目录下指定类型文件的快捷方法
操作方法
方法1:全子目录递归处理(最简便)
如果所有待处理的30多个子文件夹都存放在同一个上级父目录下,直接指定父目录作为find的搜索根路径,即可自动遍历所有下属子文件夹:
- 需同时删除父目录根路径下的同类型文件:
find /path/to/你的父目录路径 -name "*.你要删的文件后缀" -delete - 仅删除子文件夹内的文件,保留父目录根路径下的同类型文件:
添加-mindepth 2参数限定搜索深度(1代表父目录本身层级,2及以上为子文件夹层级):find /path/to/你的父目录路径 -mindepth 2 -name "*.你要删的文件后缀" -delete
方法2:匹配指定规则的子文件夹
如果仅需要处理符合命名规则的部分子文件夹,直接用通配符匹配路径即可,例如处理所有以data_开头的子文件夹:find /path/to/你的父目录路径/data_* -name "*.你要删的文件后缀" -delete
方法3:基于文件夹列表批量处理
如果待处理子文件夹命名无规律,可将所有需要处理的子文件夹名称逐行写入dirlist.txt文件,再通过xargs批量调用find:cat dirlist.txt | xargs -I {} find /path/to/你的父目录路径/{} -name "*.你要删的文件后缀" -delete
注意事项
所有删除操作执行前,建议先替换
-delete为
示例预览命令:find /path/to/你的父目录路径 -mindepth 2 -name "*.你要删的文件后缀" -print
Linux命令参数区分大小写,find的删除参数为小写-delete,大写-Delete无法正常生效。
若使用的旧版find不支持-delete参数,可替换为-exec rm {} +实现同等效果,示例:find /path/to/你的父目录路径 -mindepth 2 -name "*.你要删的文件后缀" -exec rm {} +
内容的提问来源于stack exchange,提问作者ADAS
相关产品推荐
相关产品推荐

