Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Rename file command in Unix with timestamp

Tags:

linux

shell

unix

Hello I'm using Putty and trying to rename a file name with current timestamp.

I've used following command to rename the files and according to date

mv abc.log $(date +%F)prod.txt

Above command renames but not able to rename with time, it giving output as

2014-05-12prodabc.log

And following command

abc.log $(date +%y)$(date +%m)$(date +%d)abcprod.log

giving output as

140512abc.log

Actually my requirement is as following:

  • 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

Please Help, Thanking you all in advance.

like image 791
PavanBasutkar Avatar asked May 19 '14 09:05

PavanBasutkar


3 Answers

You can use

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

If you want to know how you can control your output have a look at the date Manpages..

man date 
like image 128
Patrick Avatar answered Sep 29 '22 22:09

Patrick


Use this:

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

Here,

+%F-%H:%M will give you a format like 2014-05-19-14:47. If the renaming has done successfully, touch will create a new empty file.

like image 14
sat Avatar answered Sep 30 '22 22:09

sat


This this:

 str=abc; mv ${str}.log ${str}-$(date +%F'-'%T).log
like image 2
Tiago Lopo Avatar answered Oct 03 '22 22:10

Tiago Lopo