Linux 在复制文件时,如何将最后一个motify日期附加到文件名后缀
我想将最后一个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 .
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:按照您的预期更新了解决方案