rsyncバージョン3.2.4では行動の変化新しい引数を保護する方法について説明します。これは、ファイルまたはフォルダのファイル名にスペースが含まれている場合に当てはまります。
私はその主張を知っています--old-args
。しかし、これは回避策であり、依然として「既存の方法」を適用します。私の目標は次のとおりです
- 3.2.4で導入された「新しい」引数保護方法を使用してください。
- この「方式」を使用するスクリプトは、rsync の古いバージョンと新しいバージョンの両方で動作する必要があります。いいえ現在のシステムのrsyncバージョンを確認してください。
どうすればいいかわかりませんが、アイデアがあります。
私は過去にこれを行ったことがあります(これはrsync 3.2.3より前のバージョンでは動作しましたが、3.2.4以降では動作しませんでした)。
rsync -aiv host:"a simple file.pdf" .
考えられる解決策
-s
私が望む解決策は、以前のrsyncバージョンにも存在していた解決策を使用することです。
--protect-args, -s no space-splitting; wildcard chars only
"
このように交換しました。'
rsync -aiv host:'a simple file.pdf' . -s
これは私のテスト環境で動作するようです。しかし、これが大丈夫かどうかはわかりません。
IMHO このソリューションの利点は次のとおりです。
- 以前のバージョンのrsyncで動作します。
- 最新バージョン(3.2.6)では、これがデフォルトの
-s
動作であるようです。
サイドノート-s
:wasの長いバージョン--protect-args
ですが、その時はwasでした。--secluded-args
rsync 3.2.6では、次に名前が変更されました。「これがrsyncのデフォルトのバックスラッシュエスケープパラメータ保護の動作とどのように異なるかをより明確に説明します。」しかし、古い名前は--protect-args
まだ許可されています。