hack のためのネタ帳, etc,,,

状況

rsync で ssh でリモートにファイルを転送する際
target="foo bar"
rsync "$target" $REMOTE:"$target"
のようにすると "foo bar" が $REMOTE の "foo" にコピーされてしまう。

解法

rsync ssh filename space」でググったら以下のページを見つけた。
リモートに送るパスにダブルクォーテーションを含めておくと良いらしい。
例えば、以下のような感じ。
rsync "$target" $REMOTE:\""$target"\"
環境依存(Mac だと駄目)って話もあるようなのだが -s, --protect-args オプションを付けるって手もあるらしい。
rsync -s "$target" $REMOTE:"$target"
少なくとも Linux 同士なら問題なさそうだった。

関連

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

Wiki内検索

フリーエリア

編集にはIDが必要です