You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写Bash脚本仅删除无*.jar文件目录下的*.pom文件

解决方案

修改后可直接使用的脚本

#!/bin/sh
sudo find /var/opt/jfrog/artifactory/2021*/repositories/ -type f -name "*.pom" -exec sh -c '
for pomfile do
    pomdir=$(dirname "$pomfile")
    # 仅当目录下不存在.jar文件时才删除对应.pom
    if ! ls "$pomdir"/*.jar >/dev/null 2>&1; then
        rm -f "$pomfile"
    fi
done
' find-sh {} +

逻辑说明

  • 先通过find命令递归扫描指定路径下所有后缀为.pom的文件
  • 对每个匹配到的.pom文件,提取其所在的父目录
  • 校验该父目录下是否存在后缀为.jar的文件,仅当无.jar文件时才删除对应的.pom文件
  • 脚本兼容含特殊字符的文件名/路径,不会出现误判

测试验证建议

正式执行删除前建议先运行测试脚本,确认待删除的文件列表符合预期,避免误删数据:

sudo find /var/opt/jfrog/artifactory/2021*/repositories/ -type f -name "*.pom" -exec sh -c '
for pomfile do
    pomdir=$(dirname "$pomfile")
    if ! ls "$pomdir"/*.jar >/dev/null 2>&1; then
        echo "待删除文件: $pomfile"
    fi
done
' find-sh {} +

确认输出的文件列表无误后,再把测试脚本中的echo "待删除文件: $pomfile"替换为rm -f "$pomfile"即可。


内容的提问来源于stack exchange,提问作者user2995458

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.09 20:54:02