使用时间戳在unix中重命名文件命令

时间:2014-05-19 09:00:17

标签: linux shell unix

您好我正在使用putty并尝试使用当前时间戳重命名文件名...  我已经使用以下命令重命名文件并根据日期     mv abc.log $(日期+%F)prod.txt

以上命令重命名但无法随时间重命名,它将输出为:2014-05-12prodabc.log

以下命令     abc.log $(日期+%y)$(日期+%m)$(日期+%d)abcprod.log

输出为:140512abc.log

其实我的要求如下。

rename abc.log to abc-current timestamp.log 
e.g abc.log  become  abc-12-05-2014-17:31.log
then create new file abc.log

请帮助,提前感谢你们..

4 个答案:

答案 0 :(得分:22)

您可以使用

mv test.dat test_$(date +%d-%m-%Y).dat

如果您想知道如何控制输出,请查看日期Manpages ..

man date 

答案 1 :(得分:8)

使用此:

mv abc.log $(date +%F-%H:%M).log && touch abc.log

下面,

+%F-%H:%M会为您提供2014-05-19-14:47这样的格式。 如果重命名成功,touch将创建一个新的空文件。

答案 2 :(得分:1)

这个:

 str=abc; mv ${str}.log ${str}-$(date +%F'-'%T).log

答案 3 :(得分:-1)

如果您使用cPanel创建一个cron作业:请注意您需要%s的反斜杠。 这有效:cp log.txt log。date +"\%d\%m\%Y"。txt