Поиск файла с тем же временем модификации, что и у другого

Для каждой фотографии моя камера создает файл IMG_NNNN.JPG и файл IMG_NNNN.CR2, которые имеют одинаковое время модификации (которое, исходя из SD-карты в формате FAT, всегда составляет четное количество секунд).

Я держу JPG и CR2 отдельно, но мне иногда нужно найти CR2, который соответствует данному JPG. Мои текущие сценарии используют что-то вроде:

find /path/to/CR2s -name $(basename $jpgfile .JPG).CR2 

Но, к сожалению, из-за переноса нумерации использование одного имени уже недостаточно. Использование имени и времени модификации было бы идеально, но что-то вроде:

 find /path/to/CR2s -name $(basename $jpgfile .JPG).CR2 -newermt "$(stat -c '%y' $jpgfile)" 

не работает, потому что newermt кажется, выполняет строгое сравнение неравенства (то же самое с newer ). Кроме того, newer... опции не являются действительно пуленепробиваемыми, так как поиск CR2 старого JPG может найти CR2 более нового омонима.

Так:

  • Я пропускаю опцию в find (GNU findutils 4.7.0-git)?
  • Или есть элегантный способ сделать это (принимая во внимание, что файлы с одинаковыми именами, как правило, разделяются годами)?

С zsh вы можете сделать

 autoload age file=/path/to/something.JPG ls -ld -- **/$file:t:e.CR2 (De'(age :$file :$file)') 

Чтобы найти файлы нечто.CR2 точно такого же возраста, что и $file .