Fortschritt von cp,mv anzeigen lassen

Du suchst ein Programm für einen bestimmten Zweck?
Benutzeravatar
MF
Beiträge: 115
Registriert: 14.08.2003 12:04:05

Fortschritt von cp,mv anzeigen lassen

Beitrag von MF » 21.07.2005 11:45:36

Hallo
Gibt es einen Patch oder ein externes Programm die den Fortschritt in Prozent oä anzeigt bei mv und cp ?
Sowas fände ich ziemlich praktisch bei smbfs wenn die Verbindung mal wieder spinnt.
mfg MF

Benutzeravatar
QT
Beiträge: 1384
Registriert: 22.07.2004 21:08:02
Wohnort: localhost

Beitrag von QT » 21.07.2005 11:50:10

Spontan faellt mir hierzu der Midnight Commander 'mc' ein. Dieser zeigt eine Progressbar beim Kopieren bzw. Verschieben.

HTH!

Benutzeravatar
MF
Beiträge: 115
Registriert: 14.08.2003 12:04:05

Beitrag von MF » 21.07.2005 19:28:51

Naja den MC hab ich auch schon seit ewiger Zeit installiert. Bin aber irgendwie zu faul das Ding immer aufzurufen :wink:.
Gibt es wirklich keine andere Lösung :( ?

Benutzeravatar
npi
Beiträge: 567
Registriert: 03.08.2003 17:52:10

Beitrag von npi » 21.07.2005 19:46:35

MF hat geschrieben:Naja den MC hab ich auch schon seit ewiger Zeit installiert. Bin aber irgendwie zu faul das Ding immer aufzurufen :wink:.
Gibt es wirklich keine andere Lösung :( ?

Code: Alles auswählen

watch ls -lh <ZIELDATEI>
:lol:

gruß,
npi
"Bis zur Unendlichkeit, und noch viel weiter!"
--Buzz, Toystory

Benutzeravatar
FANA
Beiträge: 482
Registriert: 30.03.2005 17:50:55

Beitrag von FANA » 22.07.2005 01:07:07


Benutzeravatar
armin
Beiträge: 2682
Registriert: 17.03.2005 11:49:14

Beitrag von armin » 22.07.2005 01:34:19

Gibst du ein

Code: Alles auswählen

man cp
und findest
-g, --progress
show a progress bar if operation is going to take a long time[/code]
Gleiches bei mv :-)
Formerly known as Trigger.
HP 8510p - Debian Sid
Mitglied des Debian-KDE-Teams

Benutzeravatar
npi
Beiträge: 567
Registriert: 03.08.2003 17:52:10

Beitrag von npi » 22.07.2005 01:50:42

Trigger. hat geschrieben:Gibst du ein

Code: Alles auswählen

man cp
und findest
-g, --progress
show a progress bar if operation is going to take a long time[/code]
Gleiches bei mv :-)
was hast du denn für eine Version von cp (mv) bei mir (v5.2.1) kennt er keine Option -g oder --progress :-(

gruß,
npi
"Bis zur Unendlichkeit, und noch viel weiter!"
--Buzz, Toystory

Benutzeravatar
armin
Beiträge: 2682
Registriert: 17.03.2005 11:49:14

Beitrag von armin » 22.07.2005 02:08:57

Code: Alles auswählen

~# cp --version
cp (coreutils) 5.2.1
Written by Torbjorn Granlund, David MacKenzie, and Jim Meyering.

Copyright (C) 2004 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
triggersbase:~# cp --help
Usage: cp [OPTION]... SOURCE DEST
  or:  cp [OPTION]... SOURCE... DIRECTORY
  or:  cp [OPTION]... --target-directory=DIRECTORY SOURCE...
Copy SOURCE to DEST, or multiple SOURCE(s) to DIRECTORY.

Mandatory arguments to long options are mandatory for short options too.
  -a, --archive                same as -dpR
      --backup[=CONTROL]       make a backup of each existing destination file
  -b                           like --backup but does not accept an argument
      --copy-contents          copy contents of special files when recursive
  -d                           same as --no-dereference --preserve=link
      --no-dereference         never follow symbolic links
  -f, --force                  if an existing destination file cannot be
                                 opened, remove it and try again
  -g, --progress               show a progress bar if operation is going to
                                 take a long time
Seltsam.
Formerly known as Trigger.
HP 8510p - Debian Sid
Mitglied des Debian-KDE-Teams

Benutzeravatar
puntarenas
Beiträge: 712
Registriert: 28.05.2005 15:07:05

Beitrag von puntarenas » 22.07.2005 03:12:32

Code: Alles auswählen

~# cp --version
cp (coreutils) 5.2.1
Geschrieben von Torbjorn Granlund, David MacKenzie und Jim Meyering.

Copyright (C) 2004 Free Software Foundation, Inc.
Dies ist freie Software; die Kopierbedingungen stehen in den Quelltexten. Es
gibt keine Garantie; auch nicht für VERKAUFBARKEIT oder FÜR SPEZIELLE ZWECKE.

~# cp --help
Aufruf: cp [OPTION]... QUELLE ZIEL
 oder:  cp [OPTION]... QUELLE... VERZEICHNIS
 oder:  cp [OPTION]... --target-directory=VERZEICHNIS QUELLE...
Kopieren von QUELLE nach ZIEL, oder mehrere QUELLE(n) in VERZEICHNIS

Erforderliche Argumente für lange Optionen sind auch für kurze erforderlich.
  -a, --archive               genau wie -dpR
      --backup[=KONTROLLE]    eine Sicherung existierender Zieldateien erzeugen
  -b                          wie --backup, akzeptiert aber kein Argument
      --copy-contents         wenn rekursiv, Inhalt von Spezialdateien kopieren
  -d                          genaus wie --no-dereference --preserve=link
      --no-dereference        nie symbolischen Verknüpfungen folgen
  -f, --force                 wenn eine existierende Zieldatei nicht geöffnet
                                werden kann wird sie gelöscht und es noch
                                einmal versucht
  -i, --interactive           vor einem Überschreiben nachfragen
hmmm... :(

Gute Nacht ...

Benutzeravatar
Leonidas
Beiträge: 2032
Registriert: 28.04.2003 13:48:49
Lizenz eigener Beiträge: MIT Lizenz
Kontaktdaten:

Beitrag von Leonidas » 22.07.2005 19:55:27

Das finde auch ich schade, denn sowas hätte ich in meinem cp und mv auch gern gesehen:

Code: Alles auswählen

~$ cp --version
cp (coreutils) 5.2.1
Written by Torbjorn Granlund, David MacKenzie, and Jim Meyering.

Copyright (C) 2004 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
marek@arktur:~$ cp --help
Usage: cp [OPTION]... SOURCE DEST
  or:  cp [OPTION]... SOURCE... DIRECTORY
  or:  cp [OPTION]... --target-directory=DIRECTORY SOURCE...
Copy SOURCE to DEST, or multiple SOURCE(s) to DIRECTORY.

Mandatory arguments to long options are mandatory for short options too.
  -a, --archive                same as -dpR
      --backup[=CONTROL]       make a backup of each existing destination file
  -b                           like --backup but does not accept an argument
      --copy-contents          copy contents of special files when recursive
  -d                           same as --no-dereference --preserve=link
      --no-dereference         never follow symbolic links
  -f, --force                  if an existing destination file cannot be
                                 opened, remove it and try again
  -i, --interactive            prompt before overwrite
Wir wollten einen Marsch spielen, aber wir hatten nur Xylophone.

Benutzeravatar
MF
Beiträge: 115
Registriert: 14.08.2003 12:04:05

Beitrag von MF » 22.07.2005 20:09:16

Diese Option gibt es bei mir auch nicht :(
Und pv und bar funktionieren auch nicht, da cp/mv nicht mit pipes umgehen können :cry:

Benutzeravatar
puntarenas
Beiträge: 712
Registriert: 28.05.2005 15:07:05

Beitrag von puntarenas » 23.07.2005 03:10:22

So, nachdem cp und mv auf meinem vorigen System mit gentoo-linux eine progress-bar boten und mir durch diesen Thread bewußt wurde, daß ich diese vermisse, habe ich mich mal auf die Suche begeben. Zuerst habe ich die coreutils aus unstable installiert - leider vergebens.
Dann habe ich unter http://www.sebastian-hans.de/data/softw ... sbar.patch einen Patch gefunden.

Also habe ich mir von ftp.debian.org die Dateien coreutils_5.2.1-2.diff.gz, coreutils_5.2.1-2.dsc und coreutils_5.2.1.orig.tar.gz geholt und diese mit

Code: Alles auswählen

  dpkg-source -x coreutils_5.2.1-2.dsc
entpackt. Den Patch habe ich in eine Datei mit dem Namen 33_progress.patch nach coreutils-5.2.1/debian/patches/ kopiert und dann

Code: Alles auswählen

dpkg-buildpackage -us -uc
ausgeführt. Beim ersten Mal fehlten noch einige Abhängigkeiten, nachdem die entsprechenden Pakete installiert waren lief dpkg-buildpackage aber anstandslos durch und ich erhielt ein gepatchtes coreutils_5.2.1-2_i386.deb.
Nach dem Installieren sieht das ganze jetzt so aus:

Code: Alles auswählen

~# cp --help
Aufruf: cp [OPTION]... QUELLE ZIEL
 oder:  cp [OPTION]... QUELLE... VERZEICHNIS
 oder:  cp [OPTION]... --target-directory=VERZEICHNIS QUELLE...
Kopieren von QUELLE nach ZIEL, oder mehrere QUELLE(n) in VERZEICHNIS

Erforderliche Argumente für lange Optionen sind auch für kurze erforderlich.
  -a, --archive               genau wie -dpR
      --backup[=KONTROLLE]    eine Sicherung existierender Zieldateien erzeugen
  -b                          wie --backup, akzeptiert aber kein Argument
      --copy-contents         wenn rekursiv, Inhalt von Spezialdateien kopieren
  -d                          genaus wie --no-dereference --preserve=link
      --no-dereference         never follow symbolic links
  -e, --progressbar            display a progress bar for each regular file
  -f, --force                  if an existing destination file cannot be
                                 opened, remove it and try again
und cp -e zeigt beim Kopieren größerer Dateien eine Progressbar.

Soweit, so gut, nur leider nicht ganz was ich wollte. Offensichtlich habe ich den falschen Patch erwischt, der von gentoo (mit cp -g statt cp -e) wäre mir bedeutend lieber. Daher eine Bitte: Wenn jemand weiß, wo der "richtige" Patch zu finden ist, bitte posten!

Edit:
Warum andere die Arbeit machen lassen, ich habe mal auf forums.gentoo.org eine entsprechende Frage gepostet. Wenn ich den "richtigen" Patch gefunden habe, poste ich mehr. Der "gentoo-patch" hat übrigens im Gegensatz zum hier beschriebenen den Vorteil, daß er eine Geschwindigkeitsanzeige beinhaltet ...
Zuletzt geändert von puntarenas am 23.07.2005 18:23:38, insgesamt 1-mal geändert.

Benutzeravatar
Joghurt
Beiträge: 5244
Registriert: 30.01.2003 15:27:31
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Joghurt » 23.07.2005 14:07:30

Wenn du mehr weisst, stelle am besten gleich einen Wishlist-Bugreport für coreutils.

Benutzeravatar
Leonidas
Beiträge: 2032
Registriert: 28.04.2003 13:48:49
Lizenz eigener Beiträge: MIT Lizenz
Kontaktdaten:

Beitrag von Leonidas » 23.07.2005 16:12:01

Joghurt hat geschrieben:Wenn du mehr weisst, stelle am besten gleich einen Wishlist-Bugreport für coreutils.
Wundert mich sowieso, dass wir das Jahr 2005 haben, coreutils 5.2.1 und keine Fortschrittsanzeige. Gute Arbeit, puntarenas, wäre toll wenn du den Patch findest.
Wir wollten einen Marsch spielen, aber wir hatten nur Xylophone.

Benutzeravatar
puntarenas
Beiträge: 712
Registriert: 28.05.2005 15:07:05

Beitrag von puntarenas » 23.07.2005 16:14:25

So, "psyqil" vom Gentoo-Forum war so freundlich und hat mir den entsprechenden Patch zur Verfügung gestellt. Der Patch bezog sich auf die coreutils-5.2.0, ließ sich aber problemlos anpassen. Den angepassten Patch gibts hier:

http://puntarenas.fastmail.fm/

Nach der selben Prozedur wie oben bereits beschrieben sieht das ganze jetzt so aus:

Code: Alles auswählen

~$ cp --help
Aufruf: cp [OPTION]... QUELLE ZIEL
 oder:  cp [OPTION]... QUELLE... VERZEICHNIS
 oder:  cp [OPTION]... --target-directory=VERZEICHNIS QUELLE...
Kopieren von QUELLE nach ZIEL, oder mehrere QUELLE(n) in VERZEICHNIS

Erforderliche Argumente für lange Optionen sind auch für kurze erforderlich.
  -a, --archive               genau wie -dpR
      --backup[=KONTROLLE]    eine Sicherung existierender Zieldateien erzeugen
  -b                          wie --backup, akzeptiert aber kein Argument
      --copy-contents         wenn rekursiv, Inhalt von Spezialdateien kopieren
  -d                          genaus wie --no-dereference --preserve=link
      --no-dereference         never follow symbolic links
  -f, --force                  if an existing destination file cannot be
                                 opened, remove it and try again
  -g, --progress               show a progress bar if operation is going to
                                 take a long time
Bei kleineren Dateien bemerkt man erstmal nichts, bei größeren siehts dann so aus:

Code: Alles auswählen

~# cp --progress /mnt/hde8/debian-gnome.000 /tmp
debian-gnome.000                 |  15% |   507 MiB |  6066 KiB/s | ETA 00:01.12
Leider bringt der Patch die Manpages nicht auf den neuesten Stand, aber damit kann ich leben, war beim oben verwendeten ersten Patch ja auch nicht der Fall.

Daß der Patch Einzug in die offiziellen Debian-Coreutils hält, kann ich mir allerdings auf absehbare Zeit kaum vorstellen. Schließlich ist die Existenz des Patches schon länger bekannt, aber da es sich bei den Coreutils um eine der wesentlichen Kernkomponenten des Systems handelt, werden die Developer wohl in bekannt konservativer Manier von einem Einpflegen Abstand nehmen.
Finde ich übrigens auch richtig so, Debian ist nicht von ungefähr ein derart stabiles Linuxsystem geworden ....

Abschließend ein Hinweis, wahrscheinlich ist folgender unkritischer Bug mit diesem Patch noch vorhanden: http://bugs.gentoo.org/show_bug.cgi?id=78188

Edit:
Den wishlist-bugreport gibt es schon: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=284514
Zuletzt geändert von puntarenas am 23.07.2005 18:21:28, insgesamt 2-mal geändert.

Benutzeravatar
Leonidas
Beiträge: 2032
Registriert: 28.04.2003 13:48:49
Lizenz eigener Beiträge: MIT Lizenz
Kontaktdaten:

Beitrag von Leonidas » 23.07.2005 16:25:19

puntarenas hat geschrieben:Daß der Patch Einzug in die offiziellen Debian-Coreutils hält, kann ich mir allerdings auf absehbare Zeit kaum vorstellen. Schließlich ist die Existenz des Patches schon länger bekannt, aber da es sich bei den Coreutils um eine der wesentlichen Kernkomponenten des Systems handelt, werden die Developer wohl in bekannt konservativer Manier von einem Einpflegen Abstand nehmen.
Ja.. jedoch angenommen der Patch hätte keine Nachteile, dann sehe ich nicht warum man ihn nicht in absehbarer Zeit und nach ausreichend testen einbauen kann. Ich seh mal das Debian BTS etwas durch, vielleicht steht dort etwas zu dem Thema.
Wir wollten einen Marsch spielen, aber wir hatten nur Xylophone.

Benutzeravatar
puntarenas
Beiträge: 712
Registriert: 28.05.2005 15:07:05

Beitrag von puntarenas » 23.07.2005 16:34:46

(Mindestens) Einen entsprechenden wishlist-bugreport gibt es bereits:http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=284514
Ich fände es auch schön, wenn vielleicht Etch mit diesem Feature aufwarten könnte. Für Sarge werden wir wohl mit ein wenig Handarbeit leben müssen ...

Mal nebenbei, gibts irgendwo eine (kurze?!) Anleitung, wie man mit dem Wiki hier umgeht. Ich würde dann ggf. aus diesem Thread einen Eintrag dort basteln ...

psyqil
Beiträge: 3
Registriert: 23.07.2005 16:36:05

Beitrag von psyqil » 23.07.2005 16:40:14

puntarenas hat geschrieben:meinem vorigen System mit gentoo-linux
:D Auf das Du "leider keinen Zugriff" hast?

Benutzeravatar
puntarenas
Beiträge: 712
Registriert: 28.05.2005 15:07:05

Beitrag von puntarenas » 23.07.2005 16:43:20

:wink:

Benutzeravatar
Leonidas
Beiträge: 2032
Registriert: 28.04.2003 13:48:49
Lizenz eigener Beiträge: MIT Lizenz
Kontaktdaten:

Beitrag von Leonidas » 23.07.2005 16:44:24

Ich habe noch einen Bugreport/Wishlist-Item für die Progress bar gefunden: #185152.
Wir wollten einen Marsch spielen, aber wir hatten nur Xylophone.

Benutzeravatar
puntarenas
Beiträge: 712
Registriert: 28.05.2005 15:07:05

Beitrag von puntarenas » 23.07.2005 16:53:57

psyqil hat geschrieben:
puntarenas hat geschrieben:meinem vorigen System mit gentoo-linux
:D Auf das Du "leider keinen Zugriff" hast?
Damit du dir jetzt aber nicht verarscht vorkommst, möchte ich es doch noch kurz richtig stellen. Ich wollte mir einfach längere, vom Thema fortführende Erklärungen sowohl hier als auch im Gentoo-Forum ersparen. Tatsächlich ist es so, daß mei Gentoo-Rechner im Süden der Republik steht, während ich mich gerade weit im Norden befinde und in den nächsten Monaten wohl auch nicht mehr zurückkomme.
Somit war eher die Aussage "voriges System" nicht ganz zutreffend. Wie auch immer, nochmal tausend Dank für den Patch .....

psyqil
Beiträge: 3
Registriert: 23.07.2005 16:36:05

Beitrag von psyqil » 23.07.2005 17:13:14

Och, gar kein Problem, ich fand's ganz amüsant. :D

Benutzeravatar
napo
Beiträge: 230
Registriert: 27.07.2004 15:07:54

Beitrag von napo » 23.07.2005 17:23:54

Ich hab grad versucht coreutils mit diesem Patch zu kompilieren. Aber es hat nicht geklappt, folgende Fehlermeldung kam:

Code: Alles auswählen

(Stripping trailing CRs from patch.)
patching file coreutils-5.2.1/src/copy.c
Hunk #3 succeeded at 47 with fuzz 1.
Hunk #5 succeeded at 178 (offset -20 lines).
Hunk #6 succeeded at 261 (offset -20 lines).
Hunk #7 succeeded at 376 (offset -15 lines).
Hunk #8 FAILED at 443.
Hunk #9 succeeded at 586 (offset -15 lines).
1 out of 9 hunks FAILED -- saving rejects to file coreutils-5.2.1/src/copy.c.rej
(Stripping trailing CRs from patch.)
patching file coreutils-5.2.1/src/copy.h
Hunk #1 succeeded at 150 (offset -3 lines).
(Stripping trailing CRs from patch.)
patching file coreutils-5.2.1/src/cp.c
Hunk #1 succeeded at 85 (offset 1 line).
Hunk #2 succeeded at 132 (offset 1 line).
Hunk #3 succeeded at 189 (offset 1 line).
Hunk #4 succeeded at 796 (offset 46 lines).
Hunk #5 FAILED at 906.
Hunk #6 FAILED at 955.
2 out of 6 hunks FAILED -- saving rejects to file coreutils-5.2.1/src/cp.c.rej
(Stripping trailing CRs from patch.)
patching file coreutils-5.2.1/src/mv.c
Hunk #2 succeeded at 87 with fuzz 1.
missing header for unified diff at line 380 of patch
can't find file to patch at input line 380
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|
|   x->update = 0;
|   x->verbose = 0;
|+  x->pbar_show = 0;
|+  x->pbar_delay = PROGRESS_DELAY;
|+  x->pbar_min_est = PROGRESS_MIN_EST;
|+
|   x->dest_info = NULL;
|   x->src_info = NULL;
| }
--------------------------
File to patch: 
Skip this patch? [y] 
Skipping patch.
patch: **** malformed patch at line 388: @@ -363,6 +378,9 @@

zuerst hab ich

Code: Alles auswählen

apt-get source source coreutils
und dann hab ich den Patch mit

Code: Alles auswählen

cp /home/napo/654 /exchange/compile/coreutils-5.2.1/debian/patch/98_progress.patch
in das coreutils-Verzeichnis kopiert und den Kompiliervorgang mit

Code: Alles auswählen

dpkg-buildpackage -rfakeroot -b -uc -us
gestartet
Ich hab Sid und coreutils 5.2.1

Benutzeravatar
Savar
Beiträge: 7174
Registriert: 30.07.2004 09:28:58
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Berlin

Beitrag von Savar » 23.07.2005 17:34:30

puntarenas hat geschrieben:(Mindestens) Einen entsprechenden wishlist-bugreport gibt es bereits:http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=284514
Ich fände es auch schön, wenn vielleicht Etch mit diesem Feature aufwarten könnte. Für Sarge werden wir wohl mit ein wenig Handarbeit leben müssen ...

Mal nebenbei, gibts irgendwo eine (kurze?!) Anleitung, wie man mit dem Wiki hier umgeht. Ich würde dann ggf. aus diesem Thread einen Eintrag dort basteln ...

Auf der Übersichts http://www.debianforum.de/wiki/Wiki%DCbersicht steht auch weiter unten etwas zum Wiki selber und wie man es verwendet.
MODVOICE/MYVOICE
Debianforum Verhaltensregeln
Log Dateien? -> NoPaste

Benutzeravatar
puntarenas
Beiträge: 712
Registriert: 28.05.2005 15:07:05

Beitrag von puntarenas » 23.07.2005 18:20:10

Sorry, NoPaste hat offensichtlich den Patch zerschossen.

Du kannst ihn dir stattdessen hier downloaden:

http://puntarenas.fastmail.fm/

Die Posts auf der vorigen Seite habe ich entsprechend angepasst.

Antworten