他のファイルと変更時刻が同じファイルを探す

他のファイルと変更時刻が同じファイルを探す

各写真について、私のカメラは変更時刻がまったく同じ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

関連情報