Ich möchte eine Gruppe von Dateien in den Zielordner kopieren. Aber ohne eine neue Instanz von erzeugen zu müssen cp
für jede Operation.
Das arg-Format für cp
scheint zu sein:
cp src_file1 src_file2 src_file3 dest_dir/
Angenommen, ich habe eine Datei, in der die Namen der Quelldateien Zeile für Zeile aufgeführt sind, wie kann dies geschehen?
Da ich über eine sehr große Anzahl von Dateien verfüge, funktioniert die folgende Idee von @Scott nicht, da sie die maximale Befehlszeilenlänge erreicht.
Ich möchte diese Datei mit Dateinamen irgendwie weiterleiten cp
und lass es tun, es ist eine Sache. xargs
scheint auch nicht zu helfen, da sie die Erweiterung am Ende der Kommandozeile anpacken will.
Kann das gemacht werden?
Vielen Dank
xargs -J {} cp {} fruit < filelist
sollte arbeiten. Wenn es Leerzeichen und / oder Anführungszeichen gibt, können Sie mit gehen Antwort von Eicto oder einfach tuntr "\n" "\0" < filelist | xargs -0 -J {} cp {} fruit
.Simulieren
print0
von finden:cat filelist |perl -p -e 's/\n/\000/' |xargs -0 cp --target-directory dest_dir/
Dieses Beispiel enthält
xargs -0
.--target-directory
quelle