Bash에서 파일을 이동할 때 타임스탬프 추가

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)

이렇게 하면 파일이 올바르게 이동되지만 실제 파일 이름은 제거되고 날짜만 추가됩니다. 원래 파일 이름을 유지하고 파일 이름에 현재 날짜를 추가하고 싶습니다.

답변1

노력하다 mv $oldfile $dest_dir/$oldfile_$(date +%F-%T).

mv $oldfile /home/u0146121/backupfiles/$_$(date +%F)$oldfile파일 이름으로 수동으로 바꾸는 경우 한 줄은 작동하지만 변수를 구체적으로 참조하는 경우 $oldname인수 $로 건너뛰고 $oldfile마지막 인수에 대한 기록으로 반환됩니다.

관련 정보