다른 파일과 수정 시간이 동일한 파일 찾기

다른 파일과 수정 시간이 동일한 파일 찾기

각 사진에 대해 내 카메라는 수정 시간이 정확히 동일한 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.

관련 정보