以下の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