我有一堆文件夹,里面有很多组文件,文件名匹配,扩展名不同,例如
foo.a
foo.b
foo.c
bar.a
bar.b
bar.c
baz.a
baz.b
baz.c
扩展名为 .a 的文件具有正确的日期,但我需要设置具有相同文件名的其他文件的修改日期以匹配。我可以列出所有扩展名为 .a 的文件并像这样修剪它
find -name '*.a'| sed 's/\(.*\)\..*/\1/'
我知道它会涉及“touch --reference”,但就我所知。帮忙?
最佳答案
尝试:
for f in *.a; do touch -r "$f" "${f%.a}".*; done
工作原理:
for f in *.a;做
这将遍历所有扩展名为
.a
的文件touch -r "$f""${f%.a}".*
使用
f
作为引用文件,这会更改目录中仅扩展名不同的所有其他文件的日期。完成
这标志着
for
循环的结束。
关于具有匹配日期的 linux touch 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28574327/