Просто используйте цикл:
for x in *.CR2
do
[ -e "${x%.CR2}.jpg" ] || echo rm "$x"
done
Это просматривает каждый файл .CR2
и вызывает его x
.${x%.CR2}
заменяется на имя файла с .CR2
удаленным , поэтому мы добавляем расширение .jpg
и проверяем, существует ли оно с-e
. Если это не так, мы удаляем исходный файл .CR2
.
В приведенном выше примере есть дополнительный echo
, поэтому вы можете проверить, выбирает ли он нужные файлы, прежде чем что-либо удалять. Вы можете поместить все это в одну строку, если хотите:
for x in *.CR2 ; do [ -e "${x%.CR2}.jpg" ] || echo rm "$x"; done
и его будет легко редактировать в интерактивном режиме.
Некоторые оболочки имеют более мощное расширение параметров, которое может сделать это, но Bash не входит в их число. Я подозреваю, что код, который вы нашли, предназначался для одного из них.