"cp -r" mit Progress Bar?
-
Wie kann ich in Linux einen Ordner per Kommandozeile kopieren und mir dabei den Fortschritt anzeigen lassen?
-
mc (Midnight Commander) macht das beim Kopieren standardmäßig.
-
Nicht so einfach. cp (und andere, vergleichbare Tools) kopiert einfach drauf los, ohne vorher zu gucken, was und wie viel noch kommt (denn das würde unnötig lange dauern). Für jede einzelne Datei ist es möglich, sich den Fortschritt anzeigen zu lassen, aber wenn du einen Gesamtfortschritt möchtest, musst du eben ein Script schreiben, dass vorher die Anzahl der Dateien und/oder die Menge der Daten berechnet, dann kannst du dir auch einen passenden Fortschrittsbalken anzeigen lassen. Wie das geht, sollte sich leicht googeln lassen.
Du kennst das vielleicht aus Windows (und anderen GUIs), wo man beim Kopieren von vielen Dateien erst minutenlang "preparing for copy" abwarten muss, bevor überhaupt mit dem Kopieren angefangen wird. Eine Sache, die da passiert, ist eben das Zählen der Dateien, damit ein schicker Fortschrittsbalken angezeigt werden kann.
-
SeppJ schrieb:
Für jede einzelne Datei ist es möglich, sich den Fortschritt anzeigen zu lassen, aber wenn du einen Gesamtfortschritt möchtest, musst du eben ein Script schreiben
Falls mc nicht in Frage kommt, würde ich eher gcp oä. verwenden, auch wenn ich selbst das normalerweise nicht benutze.
-
nman schrieb:
Falls mc nicht in Frage kommt, würde ich eher gcp oä. verwenden, auch wenn ich selbst das normalerweise nicht benutze.
Ja, diese Art von Scripts gibt es natürlich auch schon fertig, aber ich bin jetzt mal davon ausgegangen, dass der TE keine Zusatzsoftware möchte oder eben wenn dann nur ein kleines, direkt kopierbares Script, das nicht installiert werden braucht.
-
Und falls der TS jetzt aus lauter Kompliziertheit doch zu nem normalen Dateimanager greift, so kann ich ihn nur eindringlich davon abraten, dafür Thunar zu verwenden.
Dieser Dateimanager ist so mit das letzte, was man unter Linux als Dateimanager verwenden kann.
Er ist nicht nur schnarchlangsam, weil er beim Verschieben von Dateien auf der gleichen Partition die Verzeichniseinträge nicht einfach ändert, sondern das ganze Zeugs zuerst kopiert und dann löscht, sondern er ist auch sehr unzuverlässig beim Kopieren von Verzeichnissen mit vielen Unterordnern und Dateien.
Ich hatte erst neulich das Vergnügen mit einem umfangreichen Kopiervorgang und dem Resultat, dass er nicht alles kopiert hatte und der Kopiervorgang aber beendet wurde, ohne irgendwelche Fehlermeldungen anzuzeigen.
Also, bloß nicht Thunar nehmen. Dieser Dateimanager taugt absolut nichts.
Als Alternative kann ich aber Nautilus oder Konqueror empfehlen.
Zu Dolphin habe ich noch nicht ausreichend Erfahrung.PS:
Thunar neigt auch dazu, mehrere Kopiervorgänge auf einmal anzustoßen.
Wer eine Festplatte hat, der muss dann damit rechnen, dass der Schreib- und Lesekopf ständig damit beschäftigt ist, zwischen den Orten von zwei unterschiedlichen Dateien hin und herzuspringen. Denn Thunar ist nicht intelligent genug, den Kopiervorgang einfach der Reihe nach abzuarbeiten um so einen maximalen Datendurchsatz auf der Festplatte zu erzielen.
Konqueror und Nautilus machen das wesentlich besser.Am zuverlässigsten sind aber auf alle Fälle die GNU Kommandozeilenprogramme, die benutze ich am liebsten.
Aber mit einem Dateimanager geht's in manchen Fällen auch einfach bequemer und schneller und man hat immer eine Anzeige.
-
Ich kann deine Erfahrung mit Thunar nicht bestaetigen. Ist aber sowieso nicht Thema.
-
Ich brauch das hauptsächlich für Kopieren auf externe Geräte, wo der Festplattenzugriff viel schneller als die Verbindung aufs Gerät ist. Deshalb sollte es rein theoretisch möglich sein, den Fortschritt zu berechnen ohne den Vorgang auszubremsen.
Zusätzliche Software zu installieren will ich zwar lieber vermeiden, aber bewährte Programme sind mir lieber statt (kompliziertere) selbstgestrickte Scripts.
gcp sieht zwar gut aus, ist aber bei Arch Linux nicht standardmässig dabei. Gibt es echt keine gebräuchlicheren Tools für das Problem?
Mit dem mc kenn ich mich nicht so aus, kann der auch per Kommandozeile kopieren?
-
dateikopierer schrieb:
gcp sieht zwar gut aus, ist aber bei Arch Linux nicht standardmässig dabei. Gibt es echt keine gebräuchlicheren Tools für das Problem?
Wenn du nicht den Fortschritt pro Datei sondern den Gesamtfortschritt sehen möchtest, gibt es nicht viel, nein.
Du könntest dir natürlich mit tar und pv irgendwas zusammenstricken, das sind beides Standardtools.
Mit dem mc kenn ich mich nicht so aus, kann der auch per Kommandozeile kopieren?
Nein, ich glaube nicht.
-
nman schrieb:
Du könntest dir natürlich mit tar und pv irgendwas zusammenstricken, das sind beides Standardtools.
Sowas in der Art funktioniert z.B.:
mkdir TARGETDIR tar -cf - SOURCEDIR | pv -brp -s $(du -sb SOURCEDIR | cut -f 1) | tar -xf - -C TARGETDIR
Mit einem Alias kann man das auch halbwegs normal verwenden.
Ist aber _wirklich_ dreckig; ich würde wirklich eher bcp oä. benutzen. Bei Arch war das IIRC via AUR zu bekommen.
-
Du könntest in einem zweiten Terminal im Zielverzeichnis mit ls -l schauen, wie groß die Datei schon ist, dann kannst du ungefähr abschätzen wie lange das noch dauert.
So mache ich das zumindest immer, wenn cp und mv mir zu lange dauert.
-
Für große Datenmengen verwende ich nicht gerne cp -r zum Kopieren. Unabhängig von der Fortschrittsanzeige hat es z.B. auch keine wirkliche Fehlerbehandlung. Wenn etwa der Kopiervorgang abbricht, hat man keine gute Möglichkeit, ihn fortzusetzen.
Stattdessen nehme ich da gerne rsync. Das hat Fortschrittsanzeige, Geschwindigkeitsanzeige und kann vernünftig den Vorgang unterbrechen und fortsetzen.
-
ipsec schrieb:
Stattdessen nehme ich da gerne rsync. Das hat Fortschrittsanzeige, Geschwindigkeitsanzeige und kann vernünftig den Vorgang unterbrechen und fortsetzen.
So gerne ich rsync verwende: Nein, hat es nicht. Jedenfalls nicht so, wie der OP es möchte. rsync bietet eine Fortschrittsanzeige für einzelne Dateien, die gesynct werden, nicht für den Gesamtfortschritt bei Verzeichnissen.
-
Fuer Archlinux:
advcp in aur, benutze ich auch, geht gut.
-
Alter Thread, aber gerade eben ging das hier über Hacker News:
https://github.com/Xfennec/cv
-
nman schrieb:
Alter Thread, aber gerade eben ging das hier über Hacker News:
https://github.com/Xfennec/cvreports status for the biggest file.
Also leider genau das Problem, das hier im Thread ganz am Anfang diskutiert wurde.
-
SeppJ schrieb:
reports status for the biggest file.
Also leider genau das Problem, das hier im Thread ganz am Anfang diskutiert wurde.
Ach, Mist. Sorry, hatte mir die GitHub-Seite nicht gut genug angesehen. Damit ist das Projekt generell eher nutzlos.
-
Ich hatte einen ähnlichen Anwendungsfall und habe es mit rsync gelöst.
rsync --progress
show progress during transfer
-
Also ich nutze einfach dolphin für so etwas, damit hatte ich noch keine Probleme und eine Fortschrittsanzeige gibt es da auch.
Auch lastet dolphin die Platten richtig aus, d.h. sorgt dafür, dass mehrere Dateien einzeln abgearbeitet werden und der Festplattenkopf nicht ständig hin und herspringen muss.Mit Thunar hatte ich ebenfalls schon einen Datenverlust.
Die Dateien hatten am Ende 0 Bytes und ich habe das erst Monate später bemerkt, als ich die Daten benötigte, aber damals beim kopieren glaubte, dass Thunar alles kopiert hätte. Die Dateinamen und Verzeichnisee waren ja da, nur waren die alle leer.
Thunar ist daher als Dateimanager Grütze.
-
ichhoffedasistrichtig schrieb:
Ich hatte einen ähnlichen Anwendungsfall und habe es mit rsync gelöst.
Wurde schon genannt. Zeigt allerdings den Fortschritt nur pro File an. Den Gesamtfortschritt fuer ein Verzeichnis voller kleiner Files siehst du also nicht vernuenftig.
KDE_dolphin: Es ging darum, wie man das auf der Command Line machen kann.