查找与另一个文件具有相同修改时间的文件

查找与另一个文件具有相同修改时间的文件

对于每张照片,我的相机都会生成一个 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似乎执行严格的不平等比较(与 相同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.

相关内容