質問
Locateの出力のファイルのリストを作成したいと思います。私が欲しい scp
リストを取得します。
構文についてはわかりません。擬似コードでの私の試み
locate labra | xargs scp {} masi@11.11.11:~/Desktop/
ファイルを宛先に移動するにはどうすればよいですか?
解決
通常、{}はaです 探すISM:
find ... -exec cmd {} \;
ここで、{}は、発見されている現在のファイルです。
得られる Xargs 同様の行動をとるには:
locate labra | xargs -I{} echo {} more arguments
ただし、1回の呼び出しの代わりに複数回コマンドを実行していることにすぐに気付きます SCP.
だからあなたの例の文脈で:
locate labra | xargs -I{} scp '{}' masi@11.11.11:~/Desktop/
{}の周りの単一の引用符は、スペースが入っているパスに役立つためです。
他のヒント
Xargsは通常、コマンドラインに適合できると同じくらい多くの引数を取りますが、-Iを使用すると、突然1つだけが必要です。 GNU平行 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/
所属していません StackOverflow