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

如何在Debian终端中仅删除存在同名CR2文件的JPG文件(含子目录)

解决方案:Debian终端下删除对应存在CR2文件的JPG

我来帮你搞定这个需求!你可以用find结合shell脚本的方式来完成,既安全又能精准匹配条件。直接用下面的命令就行,记得把{PATH}换成你实际要操作的文件夹路径:

find {PATH} -type f -name '*.jpg' -exec sh -c '
  # 遍历所有找到的jpg文件
  for jpg do
    # 替换后缀,得到对应的cr2文件路径
    cr2="${jpg%.jpg}.cr2"
    # 检查同目录下是否存在这个cr2文件
    if [ -f "$cr2" ]; then
      # 如果存在就删除jpg,-v参数可以显示删除的文件,方便确认
      rm -v "$jpg"
    fi
  done
' sh {} +

命令细节解释:

  • find {PATH} -type f -name '*.jpg':遍历指定路径下所有的JPG普通文件
  • -exec sh -c '...' sh {} +:把找到的所有JPG文件批量传递给后面的shell脚本处理,比逐个处理效率更高
  • ${jpg%.jpg}.cr2:这是shell的参数替换语法,%.jpg会去掉文件名末尾的.jpg,再加上.cr2就得到了同名的CR2文件路径
  • [ -f "$cr2" ]:检查这个CR2文件是否真实存在且是普通文件,避免误删

安全测试建议:

在正式执行删除前,建议先把rm -v换成echo,这样可以先预览哪些文件会被删除,确保逻辑正确:

find {PATH} -type f -name '*.jpg' -exec sh -c '
  for jpg do
    cr2="${jpg%.jpg}.cr2"
    if [ -f "$cr2" ]; then
      echo "即将删除: $jpg"
    fi
  done
' sh {} +

确认没问题后,再换回rm -v执行删除操作就可以啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 22:27:29