考えられる解決策

考えられる解決策

rsyncバージョン3.2.4では行動の変化新しい引数を保護する方法について説明します。これは、ファイルまたはフォルダのファイル名にスペースが含まれている場合に当てはまります。

私はその主張を知っています--old-args。しかし、これは回避策であり、依然として「既存の方法」を適用します。私の目標は次のとおりです

  1. 3.2.4で導入された「新しい」引数保護方法を使用してください。
  2. この「方式」を使用するスクリプトは、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-argsrsync 3.2.6では、次に名前が変更されました。「これがrsyncのデフォルトのバックスラッシュエスケープパラメータ保護の動作とどのように異なるかをより明確に説明します。」しかし、古い名前は--protect-argsまだ許可されています。

ベストアンサー1

おすすめ記事