GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Erweitertes Kopieren – Fortschrittsbalken zu cp- und mv-Befehlen in Linux hinzufügen

Das GNU cp und GNU mv Tools werden verwendet, um Dateien und Verzeichnisse im GNU/Linux-Betriebssystem zu kopieren und zu verschieben. Eine fehlende Funktion in diesen beiden Dienstprogrammen ist, dass sie Ihnen keinen Fortschrittsbalken anzeigen. Wenn Sie eine große Datei oder ein großes Verzeichnis kopieren, wissen Sie wirklich nicht, wie lange der Kopiervorgang dauern würde oder wie viel Prozent der kopierten Daten. Sie sehen nicht, welche Datei gerade kopiert wird oder wie viele bereits kopiert wurden. Alles, was Sie sehen werden, ist nur der blinkende Cursor und die LED-Anzeige der Festplatte. Dank Advanced Copy , ein Patch für Gnu Coreutils , können wir jetzt einen Fortschrittsbalken zu cp hinzufügen und mv Befehle in Linux und zeigen den Fortschrittsbalken beim Kopieren und/oder Verschieben großer Dateien und Verzeichnisse.

Advanced Copy ist ein Mod für das GNU cp und GNU mv Programme. Es fügt einen Fortschrittsbalken hinzu und bietet einige Informationen darüber, was passiert, während Sie Dateien und Ordner kopieren oder verschieben. Neben dem Fortschrittsbalken zeigt er auch die Datenübertragungsrate, die geschätzte verbleibende Zeit und den Dateinamen an, der gerade kopiert wird. Am Ende sehen Sie eine kurze Zusammenfassung, wie viele Dateien kopiert wurden und wie lange das Kopieren der Dateien gedauert hat.

Installieren Sie den „Advanced Copy“-Patch, um den cp- und mv-Befehlen unter Linux eine Fortschrittsleiste hinzuzufügen

Die Befehle cp und mv sind Teil der GNU coreutils . Sie müssen also die neuesten GNU coreutils herunterladen von hier .

$ wget http://ftp.gnu.org/gnu/coreutils/coreutils-8.32.tar.xz

Extrahieren Sie das heruntergeladene Archiv mit dem Befehl:

$ tar xvJf coreutils-8.32.tar.xz

Dieser Befehl extrahiert das Coreutils-Archiv in einen Ordner mit dem Namen coreutils-8.32 im aktuellen Verzeichnis. Cd hinein:

$ cd coreutils-8.32/

Laden Sie den Advanced Copy-Patch mit dem folgenden Befehl herunter:

$ wget https://raw.githubusercontent.com/jarun/advcpmv/master/advcpmv-0.8-8.32.patch

Wenden Sie schließlich den Patch an, indem Sie nacheinander die folgenden Befehle ausführen:

$ patch -p1 -i advcpmv-0.8-8.32.patch
$ ./configure
$ make

Jetzt zwei neue gepatchte Binärdateien, nämlich cp und mv wird in coreutils-8.32/src erstellt Mappe. Kopieren Sie sie einfach wie unten in Ihren $PATH:

$ sudo cp src/cp /usr/local/bin/cp
$ sudo cp src/mv /usr/local/bin/mv

Das ist es. Der cp und mv Befehle haben jetzt eine Fortschrittsbalkenfunktion.

Wenn Sie beim Kopieren oder Verschieben von Dateien und Verzeichnissen einen Fortschrittsbalken wünschen, fügen Sie einfach -g hinzu Flagge wie unten:

$ cp -g archlinux.iso mydownload/

Oder verwenden Sie --progress-bar Flagge:

$ cp --progress-bar archlinux.iso mydownload/

Beispielausgabe:

Copying at  25.7 MiB/s (about 0h 0m 1s remaining)
archlinux.iso                                                          568.1 MiB / 646.0 MiB
[=========================================================================>                  ] 87.9 %

Am Ende des Kopiervorgangs sehen Sie, wie viele Dateien kopiert wurden, wie lange das Kopieren der Datei(en) gedauert hat und die Datenübertragungsrate pro Sekunde. Schön, nicht wahr?

1 files (646.0 MiB) copied in 11.8 seconds ( 54.7 MiB/s).

Um ein Verzeichnis und seine Unterverzeichnisse rekursiv zu kopieren, fügen Sie einfach -R hinzu Flagge:

$ cp -gR directory1/ directory2/

Ebenso zum Verschieben von Dateien mit mv Befehl, führe aus:

$ mv -g archlinux.iso mydownload/

Oder verwenden Sie --progress-bar Flagge:

$ mv --progress-bar archlinux.iso mydownload/

Um Verzeichnisse mit mv zu verschieben Befehl, verwenden Sie:

$ mv -g directory1/ directory2/

Sie können auch Aliase erstellen, um ein paar Tastenanschläge zu sparen. Bearbeiten Sie dazu ~/.bashrc Datei:

$ nano ~/.bashrc

Fügen Sie am Ende die folgenden Zeilen hinzu:

alias cp='/usr/local/bin/cp -gR'
alias mv='/usr/local/bin/mv -g'

Drücken Sie Ctrl+o und Ctl+x um die Datei zu speichern und zu schließen.

Führen Sie nun den folgenden Befehl aus, um die Änderungen zu übernehmen:

$ source ~/.bashrc

Von nun an können Sie einfach cp verwenden oder mv Befehle ohne -g (oder --progress-bar )-Flag.

Bitte beachten Sie, dass die Originalprogramme nicht überschrieben werden. Sie können sie trotzdem jederzeit über /usr/bin/cp anrufen oder /usr/bin/mv .

Hinzufügen der Fortschrittsbalkenfunktion zu cp und mv Befehle ist eine gute Idee, wenn Sie häufig viele große Dateien und Verzeichnisse kopieren oder verschieben. Sie können jetzt genau sehen, was beim Kopieren und Verschieben von Dateien vor sich geht, anstatt auf den Bildschirm zu starren.

Hinweis:

Der ursprüngliche Autor schickte den Patch an das Team, das die GNU CoreUtils pflegt. Sie werden diesen Patch nicht zusammenführen, da mv und cp Feature Complete sind.


Linux
  1. So deaktivieren Sie Befehle zum Herunterfahren und Neustarten in Linux

  2. Lernen Sie den Unterschied zwischen den Befehlen „su“ und „su -“ in Linux kennen

  3. Linux-Befehle:jobs, bg und fg

  4. Suchen Sie eine Datei mit den Befehlen Suchen und Suchen in Linux

  5. 11 Nützliche „ssh“- und „scp“-Befehle unter Linux

Pushd- und Popd-Befehle unter Linux

So fügen Sie der Warteschlange Linux-Befehle hinzu und führen sie einzeln aus

So verwenden Sie die Befehle Pbcopy und Pbpaste unter Linux

5 lustige Befehle zur Verwendung in Linux und Terminal

40 Praktisches und produktives Beispiel für Linux-df-Befehle

Zip- und Unzip-Befehle unter Linux/Unix