각 사진에 대해 내 카메라는 수정 시간이 정확히 동일한 IMG_NNNN.JPG 및 IMG_NNNN.CR2 파일을 생성합니다(항상 짝수 초인 FAT 형식의 SD 카드에서).
JPG와 CR2를 따로 저장하는데 가끔 주어진 JPG에 해당하는 CR2를 찾아야 할 때가 있습니다. 내 현재 스크립트는 다음과 같은 것을 사용합니다.
find /path/to/CR2s -name $(basename $jpgfile .JPG).CR2
하지만 불행하게도 숫자 뒤집기 때문에 이름만 사용하는 것만으로는 더 이상 충분하지 않습니다. 이름과 수정 시간을 사용하는 것이 완벽하지만 다음과 같습니다.
find /path/to/CR2s -name $(basename $jpgfile .JPG).CR2 -newermt "$(stat -c '%y' $jpgfile)"
엄격한 불평등 비교를 수행하는 것 같기 때문에 작동하지 않습니다 newermt
( same newer
). 또한 newer...
오래된 JPG에 대한 CR2를 검색하면 최신 동음이의어에 대한 CR2를 찾을 수 있으므로 옵션이 실제로 완벽하지는 않습니다.
그래서:
find
(GNU findutils 4.7.0-git)의 옵션을 간과했나요 ?- 아니면 이를 수행하는 우아한 방법이 있습니까(동일한 이름을 가진 파일이 종종 몇 년씩 떨어져 있다는 점을 고려)?
답변1
그것으로 zsh
당신은 할 수 있습니다
autoload age
file=/path/to/something.JPG
ls -ld -- **/$file:t:e.CR2 (De'(age :$file :$file)')
something.CR2
로 찾아보세요 $file
.