Kopieren einer Datei mit der Linux-Kommandozeile ist einfach. Was aber, wenn Sie wollen, kopieren Sie die gleiche Datei an mehreren verschiedenen Standorten? Das ist auch ganz einfach, und wir werden Ihnen zeigen, wie zu tun, dass mit einem Befehl.
Normalerweise kopieren Sie eine Datei, verwenden Sie den Befehl cp, die Verknüpfung mit der Quelldatei und das Zielverzeichnis:
cp ~/Documents/FileToBeCopied.txt ~/Textdateien/
Um es zu kopieren, um zwei weitere Verzeichnisse, viele Menschen würde führen Sie einfach den Befehl noch zweimal, mit unterschiedlichen Zielen:
cp ~/Documents/FileToBeCopied.txt ~/Dropbox/
cp ~/Documents/FileToBeCopied.txt /media/lori/MYUSBDRIVE/
Wir können jedoch die gleiche Aufgabe mit einem Befehl:
echo dir1 dir2 dir3 | xargs -n 1 cp Datei1
Hier ist, wie dieser Befehl funktioniert. Der echo-Befehl schreibt normalerweise auf dem Bildschirm. In diesem Fall jedoch, wir füttern wollen die Ausgabe des echo Befehls als Eingabe für den xargs-Befehl. Um dies zu tun, wir verwenden Sie das pipe-symbol ( | ), die feeds der Ausgabe eines Befehls als Eingabe an einen anderen. Den xargs-Befehl ausführen der cp-Befehl drei mal, jedes mal anfügen der nächsten directory-Pfad geleitet, um es von der echo-Befehl am Ende der cp-Befehl. Es gibt drei Argumente übergeben werden, xargs , aber der-n-1-option auf dem xargs-Befehl sagt, dass es nur anfügen eines dieser Argumente zu einem Zeitpunkt, zu dem cp-Befehl jedes mal ausgeführt wird.
So, stick mit unser Beispiel von vorhin, die drei separate cp oben genannten Befehle können kombiniert werden, in einen Befehl wie diesen:
echo ~/Textdateien/ ~/Dropbox /media/lori/MYUSBDRIVE | xargs -n 1 cp ~/Documents/FileToBeCopied.txt
Beachten Sie, dass wenn die Datei kopiert wird, es in die Ziel-Verzeichnisse angegeben, wird die Datei im Zielverzeichnis wird automatisch ersetzt. Sie werden nicht gefragt, ob Sie möchten, um die Datei zu ersetzen. (Normalerweise, wenn Sie den cp-Befehl zum kopieren einer Datei an einem einzigen Speicherort, können Sie die option-i, um zu Fragen, ob Sie möchten, um die vorhandene Datei ersetzt. Allerdings, die option-i ist eine interaktive option (es bewirkt, dass der cp-Befehl, um Fragen für die Eingabe vom Benutzer) und Sie können eine interaktive option mit dem Befehl cp in Verbindung mit xargs .)
Eine andere Sache zu prüfen, ist, dass, wenn Sie das kopieren einer sehr großen Datei, möchten Sie vielleicht die no-clobber ( -n ) option in den cp-Befehl in der “Einzel” Befehl von oben. Diese option verhindert automatisch, dass eine Datei überschrieben wird, in einem Ziel, falls es bereits vorhanden ist. Wenn Sie das kopieren einer sehr großen Datei über ein Netzwerk, kann es langsam sein, und möchten Sie vielleicht zu vermeiden, mit den Ressourcen, die erforderlich sind, um zu kopieren und die Datei ersetzen. Der folgende Befehl fügt die option-n, und wird nicht kopieren Sie die Datei an einen beliebigen Ort aufgeführt, in der die Argumente an die echo-Anweisung, wenn die Datei bereits vorhanden ist, in das Ziel.
echo ~/Textdateien/ ~/Dropbox /media/lori/MYUSBDRIVE | xargs -n 1 cp -n ~/Documents/FileToBeCopied.txt
Typ Mann, den echo, man xargs, oder man cp auf der Kommandozeile in Linux für mehr Informationen über diese Befehle.