Ich habe Probleme beim Kopieren großer Dateien mit Nautilus (es bleibt hängen). Ich muss kopieren, mit cp
. Ich würde gerne wissen, ob es irgendwelche Parameter gibt, die den kopierten Prozentsatz und auch die Übertragungsgeschwindigkeit anzeigen.
251
rsync
anstelle von verwendencp
. Es hat eine--progress
Option.Midnight Commander
funktioniert auch gut und hat eine hübsche textbasierte Benutzeroberfläche mit Fortschrittsbalken, ist aber möglicherweise nicht installiert. Versuchen Sie esmc
an der Eingabeaufforderung. Offensichtlich auch nichtcp
.rsync
with--progress
hat mich dazu gebracht, herauszufinden, was gerade passiert. Es bleibt hängen, wenn es 100% erreicht, und dauert dann am Ende ein paar Minuten. Ich denke, es ist dasselbe, was mit Nautilus passiert. Wie auch immer, das ist bereits eine andere Frage. Die beste Antwort für diese Frage ist diersync --progress
: Größe,%, Geschwindigkeit und verstrichene Zeit.-W
Option? Auf allen meinen Hostsrsync
ist es fast so schnell wiecp
... so nah nutze ich regelmäßigrsync
stattcp
.Antworten:
rsync
hat ein Flag aufgerufen,progress2
das den Gesamtprozentsatz zeigt:quelle
--info=progress2
endlich aufgenommen amversion 3.1.0 protocol version 31
. Vielleicht könntest du deine Antwort bearbeiten, yzT.--info=progress2
dass Rsync blitzschnell ist! 200 MB / s, während Windows 90 MB / s nicht überschreitet!--progress
. rsync version 3.0.9Wenn Sie andere Tools zulassen, ist
cp
dies mit Sicherheit möglich. Für eine einzelne Datei können Sie verwendenpv
. Es ist ein kleines Tool, das nette Statistiken liefert.Wenn Sie mehrere Dateien oder Verzeichnisse haben, können Sie tar verwenden:
Sie können es in eine Shell-Funktion einbinden. Es ist weniger zu tippen und die Semantik kommt denen von sehr nahe
cp
. Hier ist eine sehr einfache (und nicht fehlersichere!) Funktion:Beachten Sie, dass einige Versionen von
tar
die oben genannte Syntax nicht unterstützen (z. B. Solaristar
) und Sie die folgende Variante verwenden müssen:Du nennst es so
Sie können es weiter verbessern, um
pv
eine Schätzung der verbleibenden Zeit zu erhalten.Eine andere Lösung (wie frostschutz in einem Kommentar erwähnt) ist die Verwendung von rsync mit der
--progress
Option:quelle
pv
nicht bekannt ist, wie viele Daten durch die Pipe kommen werden. Sie können dies mit angeben-s
. ZB zuerst tun ,du -sh sourceDirectory
um eine (grobe) Idee zu bekommen, und dann geben sie anpv
, wie folgt aus :pv -s 100m
.vbuf
(debian, ubuntu) ist ein gutes Stück schneller alspv
, wahrscheinlich wegen seines virtuellen Ringpuffersvbuf
. Aber wie es scheint, ist es momentan in Debian instabil und daher oft nicht auf Servern verfügbar, auf denen normalerweise Debian stable läuft.rsync
funktioniert am besten, um den Fortschritt während des Kopiervorgangs anzuzeigen.Ex:
quelle
Wie in anderen Antworten erläutert, bietet cp diese Funktionalität nicht. Allerdings Fortschritt (früher cv) ist ein kleines Tool , das bei der Bereitstellung dieses fehlende Feature ist sehr hilfreich.
Ich benutze es seit ein paar Monaten und es ist solide.
quelle
Ja, es ist möglich, den Fortschritt des Befehls
cp
auf dem Terminal anzuzeigen .Methode 1: (verwenden
progress
)Öffnen Sie ein neues Terminal, und geben
progress
Sie Folgendes ein, um den Fortschritt descp
Befehls und anderer Befehle anzuzeigen :cp, mv, dd, tar, cat, rsync, grep, fgrep, egrep, cut, sort, md5sum, sha1sum, sha224sum, sha256sum, sha384sum, sha512sum, adb, gzip, gunzip, bzip2, bunzip2, xz, unxz, lzma, unlzma, 7z, zcat, bzcat, lzcat, split, gpg
Wenn Sie nicht installiert
progress
, können Sie es aus dem Repository installieren, zum Beispiel in demCentOS
mit diesem Befehl:yum -y install progress
.Öffnen Sie dann nach dem Ausführen des
cp
Befehls im Hintergrund oder nach demcp
normalen Ausführen ein anderes Terminal. Probieren Sie einfach diesen Befehl aus:Siehe Ausgabe:
Methode 2: (Patch verwenden
cp
)Oder laden Sie die GNU herunter
coreutils
und patchen Sie sie.Lauf:
Kopieren Sie die beiden Dateien
cp
undmv
verschieben Sie siecoreutils-8.21/src/
nach/usr/local/bin
:Oder kopieren Sie es mit Ihrem Dateimanager als root
Fügen Sie die folgenden Zeilen zu Ihrem hinzu
~/.bashrc
:Abmelden und Anmelden
Der Fortschrittsbalken kann ohne das vom Autor empfohlene
–g
oder angezeigt werden–progress-bar
Siehe Ausgabe:
Quelle: linuxhelp
quelle
cp
Patches: web.archive.org/web/20131115171331/http://beatex.org/web/…progress
BefehlBemerkt, dass dieser Beitrag etwas alt war. Aber als ich eine Lösung für das vorliegende Problem fand, dachte ich, ich würde meine Lösung veröffentlichen.
Szenario: Wir haben eine sehr große Verzeichnisstruktur, die wir kopieren möchten. Deshalb geben wir den Befehl cp -R sourcedir destdir in einem Terminalfenster aus.
Öffnen Sie ein anderes Terminalfenster oder schieben Sie den Prozess in den Hintergrund
(Ctrl+Z,bg<CR>)
, und lassen Sie uns einen Fortschrittsindikator wie im Ghetto erstellen:Wir erhalten zuerst die Gesamtgröße der Verzeichnisstruktur, die wir kopieren möchten. Dies tun Sie mit:
du -sh /path/sourcedirectory/
Konvertieren Sie das Ergebnis in Gigabyte (G) und ersetzen Sie das Ergebnis in der Variablen sourcesize durch das n. Führen Sie den folgenden Befehl aus, nachdem Sie sourceize und destdir (Zielverzeichnis) eingefügt haben.
Dadurch wird der Fortschritt alle 10 Sekunden mit folgenden Meldungen gedruckt:
Ich bin mir bewusst, dass diese Lösung nicht die Geschwindigkeit des Kopierens ansprach, aber es wäre möglich, dies hinzuzufügen, indem Sie die obigen Befehle erweitern und sie möglicherweise in ein Bash-Skript umwandeln, damit sie leichter zu lesen sind. Zum Beispiel durch Überprüfen, wie viele Daten kopiert werden. In Zeiteinheiten sollte die Geschwindigkeit für die Berechnung und Anzeige trivial sein.
quelle
Um die Antwort von Marco zu verbessern, habe ich heute diese Version von geschrieben
cpstat
, damit Sie viele Verzeichnisse kopieren und den letzten Parameter als Zielpfad verwenden können. Beachten Sie, dass Sie dank der Verwendung eines relativ tiefen Pfads als Quelletar
automatisch denselben abhängigen Verzeichnisbaum erstellen können.quelle
Nicht in einer Standardversion von
cp
.Sie können den cp im Hintergrund anzeigen und die Größe auflisten, während Sie auf
cp
den Abschluss warten .Ich verwende dieses Perl , um das Wachstum einer einzelnen Datei zu überwachen, aber es läuft extern zum cp (oder was auch immer ich sonst tue)
quelle
Ich fand das zu benutzen, hat super funktioniert:
Aus einem Kommentar von Mike zur Frage, wie der Fortschritt der Ausführung von cp überprüft werden kann
quelle
Auch wenn
rsync
Sie einige Fortschrittsstatistiken erhalten, sollten Sie diese verwenden, wenn Sie eine Fortschrittsanzeige wünschenpv
.Sie können
cpv
einen Wrapperpv
mit einer einfacheren Syntax verwenden, dercp
demjenigen ähnelt, mit dem Sie Verzeichnisse rekursiv kopieren könnenSie können es hier bekommen
quelle
pv
. Nizza zu finden!Die Verwendung eines Tools wie
mc
(Mitternachtskommandant) kann eine gute Alternative zu anderen Antworten sein.Es ist ein einfacher Dateimanager, der Ihnen den Fortschritt beim Kopieren / Verschieben anzeigt.
quelle
dd status=progress
Option in GNU Coreutils 8.24+ (Ubuntu 16.04) hinzugefügt:
Stdout ist eine regelmäßig aktualisierte Zeile wie:
Siehe auch: Wie können Sie den Fortschritt von dd überwachen? | Fragen Sie Ubuntu
quelle
Eine andere einfache Lösung besteht darin , den Ausgabeordner wie folgt zu überwachen :
Linux / Cygwin:
watch -n 10 --differences du -sk --apparent-size <WATCHED_FOLDER>
FreeBSD:
gnu-watch -n 10 --differences du -sk <WATCHED_FOLDER>
Dieses praktische Dienstprogramm wird ausgeführt
du
und zeigt die Unterschiede auf.Eine andere mögliche Lösung wäre, ein einfaches Skript zu schreiben, das Schleifen durchführt,
du
eine grobe Schätzung des Durchsatzes aufruft und ausgibt.quelle
Bei diesem Tool handelt es sich um ein Linux-Dienstprogramm, das nach Coreutils-Grundbefehlen (cp, mv, dd, tar, gzip / gunzip, cat usw.) sucht und den Prozentsatz der kopierten Daten anzeigt:
https://github.com/Xfennec/cv
quelle
Ich hatte gerade einen Fall, in dem cp aufgrund eines FUSE-Fehlers im empfangenden Dateisystem mehr oder weniger blockiert war.
Wenn Sie nicht einfach von cp wechseln können (dh weil --sparse = always) und etwas wollen, das für den Fortschritt tatsächlich zuverlässig ist, gehen Sie über / proc.
quelle
VCP-Manpage: https://linux.die.net/man/1/vcp
Laden Sie vcp-2.2.tar.gz herunter von:
http://distfiles.gentoo.org/distfiles/vcp-2.2.tar.gz
Abhängigkeit: curses.h (libncurses-dev).
Installieren Sie unter Ubuntu:
oder
INSTALL VCP:
Handbuch:
quelle