Verwenden eines Linux/Unix-Terminals zum Kopieren vieler Dateien an einen neuen Speicherort

Verwenden eines Linux/Unix-Terminals zum Kopieren vieler Dateien an einen neuen Speicherort

Ich versuche, mithilfe eines Linux-Terminals viele Dateien an einen neuen Speicherort zu kopieren. Ich habe den folgenden Befehl ausprobiert:

sudo lokalisieren -iDatei_die_ich_möchte| xargs cp $1 /Ort, wohin_alles_kopiert_werden_möchte/

Das führt zu einem Fehler. Wie gehe ich damit richtig um?

Antwort1

xargsfunktioniert so nicht. Es verwendet nicht $1. Normalerweise hängt es das Argument einfach an das Ende der Parameterliste. Aber in diesem Fall funktioniert es nicht, da es das Ziel und nicht das Ziel ist und ein nachgestellter Parameter nicht erforderlich ist.

Schauen Sie sich das -iFlag für xargs an, es ermöglicht Ihnen eine Substitution. Der Standardwert ist {}, ich denke, um konsistent zu sein mitfind

sudo locate -i *file_I_want* | xargs -i cp {} /place_I_want_everything_copied_to/

Der Kommentar von @javano ist ebenfalls eine Antwort, würde jedoch nicht funktionieren, wenn die Dateinamen Leerzeichen enthalten (obwohl ich glaube, dass Leerzeichen auch die oben genannte Verwendung von xargs beeinträchtigen würden).

verwandte Informationen