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