Добавление метки времени при перемещении файла в bash

#!/bin/bash while read server <&3; do #read server names into the while loop if [[ ! $server =~ [^[:space:]] ]] ; then #empty line exception continue fi echo "Connecting to - $server" #ssh "$server" #SSH login while read updatedfile <&3 && read oldfile <&4; do echo Comparing $updatedfile with $oldfile if diff "$updatedfile" "$oldfile" >/dev/null ; then echo The files compared are the same. No changes were made. else echo The files compared are different. # copy the new file and put it in the right location # make a back up of the old file and put in right location (time stamp) # rm the old file (not the back up) #cp -f -v $newfile mv $oldfile /home/u0146121/backupfiles/$oldfile_$(date +%F-%T) fi done 3</home/u0146121/test/newfiles.txt 4</home/u0146121/test/oldfiles.txt done 3</home/u0146121/test/servers.txt 

Это мой весь сценарий

 mv $oldfile /home/u0146121/backupfiles/$_$(date +%F) 

Это правильно перемещает файл, но удаляет фактическое имя файла и просто добавляет дату. Я хочу сохранить исходное имя файла и добавить текущую дату в имя файла.

Попробуйте mv $oldfile $dest_dir/$oldfile_$(date +%F-%T) .

mv $oldfile /home/u0146121/backupfiles/$_$(date +%F) работает в $oldfile файле, если вы вручную замените $oldfile именем файла, но если вы специально ссылаетесь на переменную $oldname , $ будет пропускать $oldfile в качестве аргумента и вернуться в историю, чтобы получить последний аргумент.