linux 触摸具有匹配日期的文件

linux touch files with matching date

我有一堆文件夹,里面有很多组文件,文件名匹配,扩展名不同,例如

foo.a
foo.b
foo.c
bar.a
bar.b
bar.c
baz.a
baz.b
baz.c

.a 扩展名的文件日期正确,但我需要设置其他具有相同文件名的文件的修改日期以匹配。我可以列出所有扩展名为 .a 的文件,trim 这样

find -name '*.a'| sed 's/\(.*\)\..*//'

我知道它会涉及到 "touch --reference",但就我所知。帮忙?

尝试:

for f in *.a; do touch -r "$f" "${f%.a}".*; done

工作原理:

  • for f in *.a; do

    这会遍历所有扩展名为 .a 的文件

  • touch -r "$f" "${f%.a}".*

    使用 f 作为参考文件,这会更改目录中仅扩展名不同的所有其他文件的日期。

  • done

    这表示 for 循环结束。