シェル(/bin/bash
)は、for
ループ内のファイルから読み込まれた変数に一重引用符を追加し、rsync
を失敗させます。シェルは、rsyncが失敗した変数に一重引用符を追加しています
私はrsync
の束をしているシェルスクリプトを持っています。入力ファイルは、次のようになりますループの /home/account/this
サブディレクトリ
次のようになります。IFS=$'\n'
なければ
IFS=$'\n'
for SOURCE_DEST in `cat file_list`
do
rsync -av -e 'ssh -p 2222' [email protected]:$SOURCE_DEST
done
、デフォルトでは唯一に$SOURCE_DEST
を引き起こし含まれています /home/account/this
の代わり/home/account/this subdirectory
。
私はIFS=$'\n'
でこのスクリプトを実行するときしかし、それは、次のような$SOURCE_DEST
周りの単一引用符を置く:奇妙なことに失敗して行うことがrsyncの原因となる'[email protected]:/home/account/this subdirectory'
。
例:失敗した
rsync --delete-after -av -e 'ssh -p 2222' '[email protected]:/home/account/this subdirectory'
、と私は必要なの単一引用符なしでこれです:
rsync --delete-after -av -e 'ssh -p 2222' [email protected]:/home/account/this subdirectory
質問を正しく読んでいれば、 '$ {SOURCE_DEST}'は '/ home/account/thisサブディレクトリ 'にする必要があります。 – Johnsyweb
Hm。あなたは正しいかもしれません - 私は最初にそれについて考えましたが、それをどうやって理解するかは分かりませんでした。もしそうなら、それほど難しいはずがありません。あまりにもそれを解決するために私は更新するつもりです。 – FatalError
はい、SOURCEパスをDESTパスにコピーしているため、スペースが必要です。 –