Bill Lovett

Saving Old File Versions with Bash

Sometimes you want to back a backup copy of a file prior to overwriting it with a newer version. So you reach for the mv command, like so:

 $ mv example.txt example.txt.bak
 

Before long you've got example.txt.bak, example.txt.bak2, maybe even example.old or some other variation. Messy. A simple bash function placed in your .bashrc file can do the job better:

 function bk() {
     mv $1 $1-$(date +%F-%I-%M).bak
 }
 

Where you would have used mv before, now use bk. It will move the file but also tack on a timestamp. Consistent!