Linux 在复制文件时,如何将最后一个motify日期附加到文件名后缀

Linux 在复制文件时,如何将最后一个motify日期附加到文件名后缀,linux,shell,Linux,Shell,我想将最后一个motify日期附加到将被复制的文件名 我只知道如何将当前日期附加到文件中,如: find -name *.log -exec cp {} {}__$(date "+%F")__bak \; 和test.log-->test.log__2012.12.24__bak 我想要test.log-->test.log{last\u mofigy\u date}\uuu bak 但是如何将上次修改日期添加到文件名中,最好用一条语句来完成: $ for file in $(find .

我想将最后一个motify日期附加到将被复制的文件名 我只知道如何将当前日期附加到文件中,如:

 find -name *.log  -exec cp {} {}__$(date "+%F")__bak \;
和test.log-->test.log__2012.12.24__bak

我想要test.log-->test.log{last\u mofigy\u date}\uuu bak

但是如何将上次修改日期添加到文件名中,最好用一条语句来完成:

$ for file in $(find .  -name *.log )
> do
>  x=$(stat -c %y $file)
>  echo cp $file ${file}_${x%% *}_bak
> done
此代码段将显示所形成的
cp
命令集。如果正确,请删除echo并运行它以复制文件

更新: 使用just find and exec的另一种方法:

 find . -name *.log -exec bash -c 'x={} ; y=$(stat -c %y $x); echo cp $x ${x}_${y%% *}_bak ' \;

这可能没问题,但您能在一个语句中找到解决方案吗,比如:find-name*.log-exec cp{}{}{}{}{uu$(??)uubak\@mainlove:按照您的预期更新了解决方案