I want to be able to move $oldfile to my backup folder and add the date to the file name. So I tried this...

mv $oldfile /home/u0146121/backupfiles/$oldfile_$(date +%F-%T)

This just gives me this output filename. (no orignal filename)


Then I realized the potential problem for the above method. I have a while read loop that reads through a text file of path names for other files I wanted to compare. So for example, $oldfile is actually =

 $ cat oldfiles.txt

So... I want to be able to move the file2.txt and just keep the file2.txt name and add the date to it as well.


The shell sees the variable $oldfile_ which is undefined. You can fix that by using ${oldfile}_ instead.

But, do you really want to keep the paths to the old file? If not, use

mv $oldfile /home/u0146121/backupfiles/${oldfile##*/}_$(date +%F-%T)

This is my solution to adding a time stamp when moving files in bash

#!/usr/bin/env bash


for file in *.FILE_EXTENSION; do
        NEWAPPEND=$(date +%s)
        cp $file "$COPYDIR"/"$NEWAPPEND"$file
        rm $file

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.