GNU/Linux >> Linux の 問題 >  >> Linux

パイプ出力位置を指定

xargs を使用できます またはまさにこの要件。 -I を使用できます パイプラインから受け取った入力のプレースホルダーとして、do

echo "myserver:${HOME}/dir/2/" | xargs -I {} rsync -r "{}" /local/path/

(または) ~ を使用 HOME に展開されない二重引用符なし ディレクトリ パス。

echo myserver:~/dir/2/ | xargs -I {} rsync -r "{}" /local/path/

これ

 rsync -r "$(echo myserver:~/dir/2/)" /local/path/

それを行う最も簡単な方法です。

パイピングは標準出力を標準入力に接続します。ここでは、出力を引数に渡す必要があるため、従来のパイプ以外の何かが必要です。

それはコマンド置換です ($() ).


rsync を与えることができます --files-from を使用してファイルまたは標準入力にダウンロードするファイルのリスト :

echo "dir/2/" | rsync --files-from=- -r [email protected]: /local/path/

- rsync になります 標準入力から読み込みます。 rsync にサーバーを渡すことはできません このように。サーバーへの接続は 1 つだけで、すべてのファイルはその接続を介して転送されます。

-a を使用する場合 または --archive --files-from で 次に、明示的に -r を追加する必要があります または --recursive -a の一部であっても、そのオプションから再帰したい場合 、 --files-from の場合は無効です


Linux
  1. カットする配管出力

  2. grep から cp に出力をパイプする方法は?

  3. パイプ出力をシェル スクリプトの引数として使用できますか?

  1. Linux のパイプ記号 |行う?

  2. 誤って出力リダイレクト > をパイプ | の代わりに使用しました。

  3. ダウンロードしたファイルをbashの標準出力にパイプするにはどうすればよいですか?

  1. リダイレクトとパイプ出力?

  2. 出力を列で並べ替えますか?

  3. Linux で grep の検索仕様として使用するパイプ出力