SCP sucht die Ausgabe von Xargs
Frage
Ich möchte eine Liste von Dateien der Ausgabe von Locate erstellen. Ich will scp
die Liste nehmen.
Ich bin mir nicht sicher über die Syntax. Mein Versuch mit Pseudo-Code
locate labra | xargs scp {} masi@11.11.11:~/Desktop/
Wie können Sie die Dateien auf das Ziel verschieben?
Lösung
Typischerweise ist {} a findenISM:
find ... -exec cmd {} \;
Wobei {} die aktuelle Datei ist, an der Fund funktioniert.
Du kannst bekommen Xargs Ähnlich verhalten mit:
locate labra | xargs -I{} echo {} more arguments
Sie werden jedoch schnell feststellen, dass die Befehle mehrmals anstelle eines Anrufs aus ausgeführt werden SCP.
Also im Kontext Ihres Beispiels:
locate labra | xargs -I{} scp '{}' masi@11.11.11:~/Desktop/
Beachten Sie die einzelnen Zitate rund um das {}, da sie für Pfade mit Plätzen nützlich sein wird.
Andere Tipps
Xargs nimmt normalerweise so viele Argumente ein, die es in die Befehlszeile passen kann, aber ich verwendet -ich dauert plötzlich nur einen. GNU parallel http://www.gnu.org/software/parallel/ kann eine bessere Lösung sein:
locate labra | parallel -m scp {} masi@11.11.11:~/Desktop/
Darf ich vorschlagen, dass Sie sich auch RSYNC ansehen?
locate labra | parallel -m rsync -az {} masi@11.11.11:~/Desktop/