SFTP를 사용하여 파일을 이동할 수 없습니다

SFTP를 사용하여 파일을 이동할 수 없습니다

아래 sftp를 사용하여 원격 서버의 한 위치에서 다른 위치로 파일을 이동하려고 합니다.

for i in a b c d
do
sftp $REMUSR <<EOM>>$OUT 2>&1
rename $SOURDIR/sample_${i}_[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9].gz $REMDIR
quit
EOM
:
:
done

하지만 다음과 같은 메시지를 받았습니다.

'/source/sample_a_[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9] 파일 이름을 바꿀 수 없습니다. gz"에서 "/destin/"으로: 해당 파일이나 디렉터리가 없습니다.

이 파일은 /source내가 확인한 디렉토리에 존재하지만:

$ ls -l sample_a_[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9].gz
-rw-r--r--  1 prd admin 112 May 23 09:16 sample_a_20140330.gz

답변1

FTP의 이름 바꾸기 명령은 정규식을 평가하지 않습니다. 정규식을 시스템에 존재하지 않는 파일 이름으로 해석합니다. 당신은 을 사용하고 있습니다 sftp. 또 다른 방법은 다음을 사용하는 것입니다 ssh.

for i in a b c d
do
  ssh $user@$host "mv $SOURDIR/sample_a_[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9].gz $REMDIR"
done

관련 정보