Website-Suche

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


Die Tools GNU cp und GNU mv werden zum Kopieren und Verschieben von Dateien und Verzeichnissen im GNU/Linux-Betriebssystem verwendet. Eine fehlende Funktion dieser beiden Dienstprogramme ist, dass sie Ihnen keinen Fortschrittsbalken anzeigen. Wenn Sie eine große Datei oder ein großes Verzeichnis kopieren, wissen Sie nicht, wie lange der Kopiervorgang dauern würde oder wie viel Prozent der Daten kopiert werden. Sie sehen nicht, welche Datei gerade kopiert wird oder wie viele bereits kopiert wurden. Sie sehen lediglich den blinkenden Cursor und die LED-Anzeige der Festplatte. Dank Advanced Copy, einem Patch für Gnu Coreutils, können wir jetzt Fortschrittsbalken zu cp und mv hinzufügen Befehle unter Linux und zeigen den Fortschrittsbalken beim Kopieren und/oder Verschieben großer Dateien und Verzeichnisse an.

Was ist Advanced Copy?

Advanced Copy ist ein Mod für die Programme GNU cp und GNU mv . Es fügt einen Fortschrittsbalken hinzu und bietet einige Informationen darüber, was beim Kopieren oder Verschieben von Dateien und Ordnern passiert. Es zeigt nicht nur den Fortschrittsbalken, sondern auch die Datenübertragungsrate, die geschätzte verbleibende Zeit und den Dateinamen, der gerade kopiert wird. Am Ende sehen Sie eine kurze Zusammenfassung darüber, 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 Fortschrittsanzeige hinzuzufügen

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

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

Extrahieren Sie das heruntergeladene Archiv mit dem folgenden 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 abschließend den Patch an, indem Sie die folgenden Befehle nacheinander ausführen:

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

Jetzt werden zwei neue gepatchte Binärdateien, nämlich cp und mv, im Ordner coreutils-8.32/src erstellt. Kopieren Sie sie einfach wie folgt in Ihren ` PATH:

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

Das ist es. Die Befehle cp und mv verfügen jetzt über eine Fortschrittsbalkenfunktion.

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

cp -g archlinux.iso mydownload/

Oder verwenden Sie das Flag --progress-bar:

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 %

Fügen Sie den Fortschrittsbalken zu cp- und mv-Befehlen unter Linux hinzu

Am Ende des Kopiervorgangs sehen Sie, wie viele Dateien kopiert wurden, wie lange das Kopieren der Datei(en) gedauert hat und wie hoch die Datenübertragungsrate pro Sekunde ist. 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 das Flag -R hinzu:

cp -gR directory1/ directory2/

Um Dateien mit dem Befehl mv zu verschieben, führen Sie auf ähnliche Weise Folgendes aus:

mv -g archlinux.iso mydownload/

Oder verwenden Sie das Flag --progress-bar:

mv --progress-bar archlinux.iso mydownload/

Um Verzeichnisse mit dem Befehl mv zu verschieben, verwenden Sie:

mv -g directory1/ directory2/

Sie können auch Aliase erstellen, um einige Tastendrücke zu sparen. Bearbeiten Sie dazu die Datei ~/.bashrc:

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 Strg+o und Strg+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 die Befehle cp oder mv ohne -g (oder --progress-bar) verwenden ) Flagge.

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

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

Hinweis:

Der ursprüngliche Autor hat den Patch an das Team geschickt, das die GNU CoreUtils verwaltet. Sie werden diesen Patch nicht zusammenführen, da mv und cp funktionsvollständig sind.

Ressourcen:

  • Erweitertes GitHub-Repository kopieren
  • Erweiterte Kopie im Internet Archive

Verwandte Lektüre:

  • gcp – ein erweitertes Dienstprogramm zum Kopieren von Dateien für Linux
  • So überwachen Sie den Fortschritt von Daten durch eine Pipe mit dem Befehl „pv“

Verwandte Artikel