Connect with us

Wie man

So kopieren Sie eine Datei in mehrere Verzeichnisse mit einem Befehl in Linux

So kopieren Sie eine Datei in mehrere Verzeichnisse mit einem Befehl in Linux

Das Kopieren einer Datei mit der Linux-Befehlszeile ist einfach. Was aber, wenn Sie dieselbe Datei an mehrere verschiedene Speicherorte kopieren möchten? Auch das ist ganz einfach, und wir zeigen Ihnen, wie das mit einem Befehl geht.

Normalerweise würden Sie zum Kopieren einer Datei die cp Befehl, der auf die Quelldatei und das Zielverzeichnis verlinkt:

cp ~/Documents/FileToBeCopied.txt ~/TextFiles/

Um es in zwei weitere Verzeichnisse zu kopieren, würden viele Leute den Befehl einfach noch zweimal mit unterschiedlichen Zielen ausführen:

cp ~/Documents/FileToBeCopied.txt ~/Dropbox/
cp ~/Documents/FileToBeCopied.txt /media/lori/MYUSBDRIVE/

Wir können jedoch die gleiche Aufgabe mit einem Befehl ausführen:

echo dir1 dir2 dir3 | xargs -n 1 cp file1

So funktioniert dieser Befehl. Das echo Befehl schreibt normalerweise auf den Bildschirm. In diesem Fall möchten wir jedoch die Ausgabe des echo Befehl als Eingabe für den xargs Befehl. Dazu verwenden wir das Pipe-Symbol ( | ), die die Ausgabe eines Befehls als Eingabe an einen anderen weiterleitet. Das xargs Befehl führt die cp Befehl dreimal, wobei jedes Mal der nächste Verzeichnispfad angehängt wird, der von der echo Befehl weiter bis zum Ende des cp Befehl. Es werden drei Argumente übergeben an xargs , aber die -n 1 Option auf der xargs Befehl weist es an, nur eines dieser Argumente gleichzeitig an das anzuhängen cp Befehl jedes Mal, wenn es ausgeführt wird.

Um bei unserem Beispiel von vorhin zu bleiben, die drei sind getrennt cp Die obigen Befehle können wie folgt zu einem Befehl kombiniert werden:

echo ~/TextFiles/ ~/Dropbox /media/lori/MYUSBDRIVE | xargs -n 1 cp ~/Documents/FileToBeCopied.txt

Beachten Sie, dass die Datei in diesem Ziel automatisch ersetzt wird, wenn die kopierte Datei in einem der angegebenen Zielverzeichnisse vorhanden ist. Sie werden nicht gefragt, ob Sie die Datei ersetzen möchten. (Normalerweise, wenn Sie die cp Befehl zum Kopieren einer Datei an einen einzelnen Speicherort, können Sie die -i Option, um zu fragen, ob Sie eine vorhandene Datei ersetzen möchten. Allerdings ist die -i Option ist eine interaktive Option (sie bewirkt die cp Befehl, um den Benutzer um Eingaben zu bitten) und Sie können keine interaktive Option mit dem cp Befehl, wenn es in Verbindung mit . verwendet wird xargs .)

Eine andere Sache, die Sie beachten sollten, ist, dass Sie beim Kopieren einer sehr großen Datei möglicherweise das no-clobber ( -n ) Option zum cp Befehl im einzelnen Befehl oben. Diese Option verhindert automatisch, dass eine Datei in einem Ziel überschrieben wird, wenn sie dort bereits existiert. Wenn Sie eine sehr große Datei über ein Netzwerk kopieren, kann dies langsam sein und Sie möchten möglicherweise vermeiden, die zum Kopieren und Ersetzen der Datei erforderlichen Ressourcen zu verwenden. Der folgende Befehl fügt die -n Option und kopiert die Datei nicht an ein Ziel, das in den Argumenten der echo-Anweisung aufgeführt ist, wenn die Datei bereits in diesem Ziel vorhanden ist.

echo ~/TextFiles/ ~/Dropbox /media/lori/MYUSBDRIVE | xargs -n 1 cp -n ~/Documents/FileToBeCopied.txt

Art Mann Echo, Mann xargs, oder Mann cp auf der Befehlszeile in Linux, um weitere Informationen zu diesen Befehlen zu erhalten.

Continue Reading
Click to comment

Leave a Reply

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Tendencia