如何在Linux中删除名称以-outputs结尾的文件夹内的所有文件?
Linux 批量删除
-outputs 后缀文件夹内文件的命令方案 可以通过find命令实现该需求,这是Linux系统下处理批量目录/文件操作的标准工具,无需额外安装依赖。
1. 基础适用命令
如果你要操作的根目录为/your/target/root/path,直接执行以下命令即可:
find /your/target/root/path -type d -name "*-outputs" -exec rm -rf {}/* \;
参数解释:
-type d:限定仅匹配目录类型的对象,排除普通文件-name "*-outputs":匹配所有名称以-outputs为后缀的目录-exec rm -rf {}/* \;:对每个匹配到的目录,删除其内部所有文件和子目录,保留*-outputs文件夹本身
2. 安全操作建议
rm -rf操作不可逆,正式执行前务必先验证匹配结果是否符合预期:
# 仅打印所有匹配到的*-outputs目录,不执行删除 find /your/target/root/path -type d -name "*-outputs" -print
如果需要连*-outputs目录本身一起删除,修改命令如下:
find /your/target/root/path -type d -name "*-outputs" -exec rm -rf {} \;
3. 兼容特殊字符场景
如果目录名包含空格、换行等特殊字符,使用以下兼容写法避免执行异常:
find /your/target/root/path -type d -name "*-outputs" -print0 | xargs -0 -I {} sh -c 'rm -rf "{}"/*'
注意:所有删除操作执行前都建议先在测试目录验证,避免误删重要数据。
内容的提问来源于stack exchange,提问作者Coding_N00b
相关产品推荐
相关产品推荐

