如何删除 JPG 文件,但前提是匹配的 RAW 文件存在?

How to delete JPG files, but only if the matching RAW file exists?

在 debian 终端上,如果 .cr2 存在于同一文件夹中,我尝试删除文件夹和子文件夹的所有 .jpg。

假设他们有相同的名字。 123.jpg 123.cr2

我知道如何用查找命令删除所有.jpg。

find {PATH} -type f -name '*.jpg' -delete

但我如何添加条件(如果 .cr2 存在)

我找到了这个 10y topics 但它适用于 windows 和 python

您可以尝试类似的方法:

shopt -s globstar
for i in /path/**.jpg
do
RAW=${i%.jpg}.cr2
if [ -f "$RAW" ]
then rm "$i"
fi
done

如果您是 oneliners 的粉丝,您可以将脚本转换为类似以下内容:

shopt -s globstar; for i in /path/**.jpg; do [ -f "${i%.jpg}.cr2" ] && rm "$i"; done