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

find の出力を scp の入力リストにパイプしたいのですが、どうすればよいですか?

find . -name "*" -exec scp '{}' [email protected]:/directory ';'

通常 すべてのファイルを 1 つの巨大なブロブにまとめて「tar」し、「scp」を一度だけ呼び出します。このようなもの:

tar czfv - file1 file2 dir1 dir2 | ssh [email protected]/ tar xvzf - -C directory
  • tar の --exclude=または --include=パラメータをいじることができます。
  • もう 1 つのオプションは、rsync を使用することです。

コマンド scp だけで実行できます .

  • scp の新しいバージョンの場合 :
scp `find <path> -name <expression>` [email protected]:<path_where_to_copy>
  • 古いバージョンの場合:
scp --exec=`find <path> -name <expression>` [email protected]:<path_where_to_copy>

find を必ずカプセル化してください バッククォートの間のコマンド ` 一重引用符ではありません ' .


for f in `find . -name "*"`;do scp $f [email protected]/directory;done

Linux
  1. SHOW PROCESSLISTの出力をMySQLのファイルに保存するにはどうすればよいですか?

  2. キーボード入力とテキスト出力はどのように機能しますか?

  3. Bashのヌル区切り入力で`head`と`tail`を実行する方法は?

  1. curl -v の出力をパイプまたはリダイレクトするにはどうすればよいですか?

  2. Linux で「find」の結果を mv にパイプする方法

  3. Linux 分割コマ​​ンドにパイプするにはどうすればよいですか?

  1. Linuxで開いているすべてのポートのリストを見つける方法

  2. コマンド出力をAnsibleの配列に保存する方法は?

  3. Linuxでパーティションのすべてのファイルを一覧表示する方法は?