I am trying to rename a file with the mv command and I would like to add the last modified date of this file (with YYYYMMDD format) on the file name and move it to other folder. I got the current system date like this:

mv /home/user/Desktop/a.txt "/home/user/Desktop/testfolder/$(date +%Y%m%d)-a.txt"

I used other combinations of date but I didn't get it. I need to know if it is possible do it directly by command line or I need to create a script.


You can try this command:

mv /dir_path/example.txt /new_dir_path/$(date +%Y-%m-%d -r example.txt)example.txt
  • 1
    Yes the command "date +%Y-%m-%d -r example.txt" gives last modified date of a file. – Rajesh Keladimath Jan 1 '17 at 13:20

It is probably easiest to get things correct with a small script file.


I think you want to use the modification date instead of the current date, see the output from

ls -l a.txt


ls -l --time-style=long-iso a.txt

Thanks, I got it! Only one detail. If you are using the command from a path where the original file is not, you need to use this:

mv /dir_path/example.txt /new_dir_path/$(date +%Y-%m-%d -r /dir_path/example.txt)example.txt

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.