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?

War es hilfreich?

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/
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top