次のコマンドを使用して/tmp/file
ファイルをリモートサーバーに転送できます。rsync
rsync -R -av /tmp/file root@server:/
しかし、パイプするファイルのリストをどのように提供しますか?--files-from=
オプションを試しましたが、うまく/dev/stdin
いきません。
echo /tmp/file | rsync -R -av --files-from=/dev/stdin root@server:/
(通常のファイルでも機能しません)
たとえば、findの出力を使用できるようにパイプからrsyncを読み取ることはできますか?
ベストアンサー1
rsync
ファイルからパス名を読み取る場合でも、ソースパラメータとターゲットパラメータを指定する必要があります。
echo /tmp/file | rsync -av --files-from=- / user@server:/
読み取ったパス名はソースディレクトリrsync
に基づいています。このオプションは使用時に暗黙的であり、指定された標準入力を使用できます。/
-R
--files-from
-
また、見ることができます
man rsync
- 検索結果を繰り返すのはなぜ悪い習慣ですか?
find
usingrsync
で出力を渡す意図について別の質問をしたい場合があります--from-file
。おそらくあなたが望むものを達成するより安全な方法があります。たとえば、-print0
withを使用してwithとペアリングできますfind
。システムのマニュアルを参照してください。-from0
rsync
rsync
find