0

ロケートの出力のファイルのリストを作成したい。scpリストを取りたい。

構文についてはわかりません。疑似コードでの私の試み

locate labra | xargs scp {} masi@11.11.11:~/Desktop/

ファイルを移動先に移動するにはどうすればよいですか?

4

2 に答える 2

3

xargs は通常、コマンド ラインに収まる数の引数を取りますが、-I を使用すると突然 1 つしか取りません。GNU Parallel http://www.gnu.org/software/parallel/がより良い解決策かもしれません:

locate labra | parallel -m scp {} masi@11.11.11:~/Desktop/

あなたはscpを見ているので、rsyncもチェックすることをお勧めしますか?

locate labra | parallel -m rsync -az {} masi@11.11.11:~/Desktop/
于 2010-06-10T20:01:27.390 に答える
1

通常、{} は検索イズムです。

find ... -exec cmd {} \;

{} は、find が作業している現在のファイルです。

xargsを次のように動作させることができます:

locate labra | xargs -I{} echo {} more arguments

ただし、 scpを 1 回呼び出すのではなく、コマンドを複数回実行することがすぐにわかります。

したがって、あなたの例のコンテキストでは:

locate labra | xargs -I{} scp '{}' masi@11.11.11:~/Desktop/

{} を一重引用符で囲んでいることに注意してください。パスにスペースが含まれている場合に便利です。

于 2009-11-12T21:02:25.050 に答える