Beim Kopieren einer großen Datei, z. B. eines Films oder eines Betriebssystemabbilds, dauert der Befehl cp manchmal länger als erwartet, abhängig von der Auslastung Ihres Systems. Da es den Fortschritt der Operation nicht anzeigt, wird es schwierig zu verstehen, was genau passiert.

In Szenarien wie diesen kann ein Befehl wie cv eine große Hilfe sein, da er nicht nur den Fortschritt der Operation anzeigt, sondern auch die verbleibende Zeit anzeigt. In diesem Artikel werden wir den Befehl zusammen mit einigen nützlichen Beispielen diskutieren.

Einführung

Der Befehl cv ist ein Dienstprogramm, das speziell nach Coreutils-Basisbefehlen wie cp, mv, dd, tar, cat und mehr sucht, die derzeit auf Ihrem System ausgeführt werden, und deren Fortschrittsprozentsatz anzeigt. Obwohl es Linux-spezifisch ist, ist auch ein Mac OSX-Port verfügbar.

Herunterladen und installieren

Um den cv Befehl herunterzuladen und zu installieren, gehen Sie zu seinem Github-Repository und laden Sie das Quellpaket herunter (der Name der heruntergeladenen Datei war in meinem Fall "cv-master.zip"). Wenn Sie fertig sind, extrahieren Sie die Dateien mit dem folgenden Befehl:

 entpacke cv-master.zip 

Geben Sie das Verzeichnis "cv-master" ein und führen Sie die folgenden Befehle aus, um das Paket zu erstellen und die Binärdatei zu installieren:

 make make installieren 

Bitte beachten Sie, dass der cv Befehl von der "ncurses" -Bibliothek abhängt. Daher müssen Sie möglicherweise entsprechende Pakete installieren, indem Sie den folgenden Befehl ausführen:

 sudo apt-get installieren ncurses-dev 

Ein weiterer erwähnenswerter Punkt ist, dass die Binärdatei nach der Installation in "/ usr / local / bin" wechselt. Stellen Sie daher sicher, dass der Pfad zu Ihrer Systemumgebung hinzugefügt wird. Andernfalls kann Ihre Shell den Befehl bei der Ausführung nicht finden es. Eine Alternative wäre, Ihr aktuelles Verzeichnis in "/ usr / local / bin" zu ändern und dann den Befehl auf folgende Weise auszuführen:

 ./Lebenslauf 

Verwendung

Hier einige Beispiele, wie dieser Befehl verwendet werden kann:

Hinweis : Alle in diesem Artikel vorgestellten Beispiele werden unter Ubuntu 14.04 getestet.

Ein grundlegendes Beispiel

Da der Befehl cv den Fortschritt anderer Befehle anzeigt, die ausgeführt werden, muss ein Befehl vorhanden sein, der so lange ausgeführt wird, dass der Befehl cv alles anzeigen kann. Zum Beispiel habe ich versucht, eine große Datei von meinem USB-Stick in meine Linux-Box zu kopieren, und als der Befehl cp ausgeführt wurde, wechselte ich sofort zu einer anderen Shell-Registerkarte und führte den folgenden Befehl aus:

 ./Lebenslauf 

Der Befehl zeigte die folgende Ausgabe an:

Das erste Feld in der Ausgabe ist die PID des überwachten Befehls, gefolgt von dem Befehl und dem Fortschritt in Prozent sowie Zahlen. Ein erwähnenswerter Punkt ist, dass die erste Zeile in der Ausgabe des cv Befehls ( cat inactive/flushing/streaming/... ) standardmäßig ist - ich habe den Code überprüft und festgestellt, dass die Zeile unter bestimmten Bedingungen gedruckt wird, was anscheinend immer kommt Hit (wir können es für jetzt ignorieren).

Wenn mehrere Befehle ausgeführt werden, zeigt der Befehl cv den Fortschritt für alle an. Zum Beispiel ist hier die Ausgabe mit zwei Befehlen ausgeführt:

Erhalten Sie einen geschätzten E / A-Durchsatz und ETA

Während es nützlich ist, den Fortschritt eines Befehls zu kennen, ist es noch bequemer, wenn Sie andere Informationen wie die verbleibende Zeit oder ETA kennen lernen. Dazu bietet der Befehl cv Befehlszeilenoption -w .

Zum Beispiel, wenn der folgende Befehl ausgeführt wurde:

 ./cv -w 

Folgende Ausgabe wurde angezeigt:

 [9287] cp / media / himanshu / F58B-9AA9 / Casper-rw 10, 3% (105, 2 MiB / 1 GiB) 27, 9 MiB / s eta 0:00:32 

Die letzten zwei Felder in der Ausgabe, die den geschätzten E / A-Durchsatz und ETA darstellen, weisen darauf hin, dass der Kopiervorgang mit einer Geschwindigkeit von 27, 9 MB pro Sekunde fortschreitet und 32 Sekunden dauert.

Wiederholen Sie den Befehl

cv Befehl cv, werden Sie feststellen, dass die Fortschrittsdetails zu diesem Zeitpunkt angezeigt und dann beendet werden. Um sicherzustellen, dass cv nicht beendet wird, bis der überwachte Befehl beendet wird, verwenden Sie die Option -m .

 Lebenslauf -m 

Dadurch wird sichergestellt, dass der cv Befehl ausgeführt wird, während überwachte Prozesse noch ausgeführt werden.

Fazit

Der cv Befehl könnte ein Vorteil für diejenigen sein, die sich mit der Übertragung von schweren Dateien oder anderen zeitaufwändigen Operationen in der Linux-Befehlszeile befassen. Unnötig zu sagen, dass Sie Open Source sein können, können Sie die Art, wie es interagiert und funktioniert, verändern, indem Sie Änderungen an der Codebasis vornehmen, die ziemlich klein und leicht zu verstehen ist.

Hast du jemals cv oder einen ähnlichen Befehl benutzt? Wie war deine Erfahrung? Teilen Sie Ihre Gedanken in den Kommentaren unten.