Maxerl: Auf Linux verbose Ausgabe von "mv" und "cp"

Hallo!

Wenn man auf Linux Dateien kopiert oder verschiebt,
so wird man im dunkeln stehen gelassen wie weit der
Fortschritt des Kopierens bzw. Verschiebens ist.

man sieht seine eingabe und eine leere neue Zeile.
Ich würde gerne etwas sehen das einer Fortschritts-Anzeige
wie bei dem Programm "wget" gleich kommt.

[ =============> (64 %)         ]

kann man das bewirken,
oder gibts dafür eigene Shell-Programme die das können?

es dankt
euer Maxerl

  1. Hallo!

    Moin

    [ =============> (64 %)         ]

    kann man das bewirken,
    oder gibts dafür eigene Shell-Programme die das können?

    Es gab irgend ne version von cp und mv die das konnte, vom prinzip her gibt es sowas eigentlich nicht, wahrscheinlich weil diese balken eh immer "luegen"

    Mfg entropie

    --
    Whenever people agree with me I always feel I must be wrong.
      -- Oscar Wilde
  2. Moin!

    man sieht seine eingabe und eine leere neue Zeile.
    Ich würde gerne etwas sehen das einer Fortschritts-Anzeige
    wie bei dem Programm "wget" gleich kommt.

    Hast du schon mal das hier probiert:

      
    mv --help  
      
    cp --help  
      
    man mv  
      
    man cp  
    
    

    - Sven Rautenberg

    --
    My sssignature, my preciousssss!
    1. Hallo Sven,

      Hast du schon mal das hier probiert:

      mv --help

      cp --help

      man mv

      man cp

        
      ich sehe dort keine Optionen, die es einem ermöglichen, einen Fortschrittsbalken anzeigen zu lassen.  
        
      Eine [Google-Suche](http://www.google.de/search?q=cp%20linux%20Fortschrittsbalken&hl=de&meta=) bringt jedoch ein ganz vernünftiges [Resultat](http://blog.softwiki.org/archives/000016.html).  
        
      Das mit dem Patchen ist allerdings immer so eine Sache, wenn man die Standard-Pakete der Distributionen verwendet. Man sollte \_immer\_ Sicherheitskopien anlegen, und bei Updates darauf achten, dass die eigenen Änderungen von den Distributionen überschrieben werden können.  
        
        
      Grüße  
        
      Marc Reichelt || <http://www.marcreichelt.de/>  
      
      -- 
      Linux is like a wigwam - no windows, no gates and an Apache inside!  
        
      Selfcode: ie:{ fl:| br:> va:} ls:< fo:} rl:( n4:( ss:) de:> js:| ch:? sh:| mo:) zu:)  
      <http://emmanuel.dammerer.at/selfcode.html>
      
      1. Moin!

        Hast du schon mal das hier probiert:

        mv --help

        cp --help

        man mv

        man cp

        
        >   
        > ich sehe dort keine Optionen, die es einem ermöglichen, einen Fortschrittsbalken anzeigen zu lassen.  
          
        Bei mir gibts cp --progress, um nur ein Beispiel zu nennen.  
          
        
        > Eine [Google-Suche](http://www.google.de/search?q=cp%20linux%20Fortschrittsbalken&hl=de&meta=) bringt jedoch ein ganz vernünftiges [Resultat](http://blog.softwiki.org/archives/000016.html).  
          
        Nun ja: Das Paket "fileutils" ist schon lange mit den Paketen shellutils und textutils verschmolzen und aktualisiert worden (coreutils). Ich bezweifle ernsthaft, dass ein Patch für eine Version aus dem Jahre 2001 heute noch funktionieren wird.  
          
         - Sven Rautenberg
        
        -- 
        My sssignature, my preciousssss!
        
        1. Hallo Sven,

          Bei mir gibts cp --progress, um nur ein Beispiel zu nennen.

          Bei mir nicht, und bei Ashura anscheinend auch nicht.
          Verwendest du zufällig Gentoo? Da ist das reingepatcht... ;)

          Soeben habe ich das auch mal auf meinem Server (da läuft Gentoo) ausprobiert - und siehe da, dort gibt es diesen Parameter.

          Nun ja: Das Paket "fileutils" ist schon lange mit den Paketen shellutils und textutils verschmolzen und aktualisiert worden (coreutils). Ich bezweifle ernsthaft, dass ein Patch für eine Version aus dem Jahre 2001 heute noch funktionieren wird.

          Stimmt.
          Aber es ist zumindest schon mal ein Punkt, an dem man seine Suche beginnen kann.

          Grüße

          Marc Reichelt || http://www.marcreichelt.de/

          --
          Linux is like a wigwam - no windows, no gates and an Apache inside!
          Selfcode: ie:{ fl:| br:> va:} ls:< fo:} rl:( n4:( ss:) de:> js:| ch:? sh:| mo:) zu:)
          http://emmanuel.dammerer.at/selfcode.html
          1. Moin!

            Bei mir gibts cp --progress, um nur ein Beispiel zu nennen.

            Bei mir nicht, und bei Ashura anscheinend auch nicht.
            Verwendest du zufällig Gentoo? Da ist das reingepatcht... ;)

            Natürlich [TM].

            Wer mit "normalem" cp einen Fortschrittsbalken haben will, muß eben rsync verwenden - da gibts das standardmäßig. (Ist übrigens ein offizieller Vorschlag eines Maintainers von "cp".)

            - Sven Rautenberg

            --
            My sssignature, my preciousssss!
      2. Hallo Marc,

        man mv

        man cp

        
        >   
        > ich sehe dort keine Optionen, die es einem ermöglichen, einen Fortschrittsbalken anzeigen zu lassen.  
          
        Beide Programme verstehen in der aktuellen Version -g oder --progress, mit denen sich so etwas erreichen lässt. Allerdings ist die Manual-Page zu beiden Tools hoffnungslos veraltet (Anno 1998), die Info-Seite ist etwas aktueller (steht kein Datum dabei, es werden aber mehr Optionen erwähnt) aber immer noch total veraltet (kein -g/--progress). Nur beim Ausführen von cp --help und mv --help wird die Option erwähnt.  
          
        Viele Grüße,  
        Christian  
        
        
        1. Hallo Christian.

          Beide Programme [mv und cp] verstehen in der aktuellen Version -g oder --progress, […]

          $ cp --progress test.img test2.img
          cp: Unbekannte Option »--progress«
          »cp --help« gibt weitere Informationen.

          $ cp -g test.img test2.img
          cp: Ungültige Option -- g
          »cp --help« gibt weitere Informationen.

          $ mv --progress test.img test2.img
          mv: Unbekannte Option »--progress«
          »mv --help« gibt weitere Informationen.

          $ mv -g test.img test2.img
          mv: Ungültige Option -- g
          »mv --help« gibt weitere Informationen.

          Welche ist die aktuelle Version?
          Bei mir sind mv und cp in Version 5.93 installiert.

          Nur beim Ausführen von cp --help und mv --help wird die Option erwähnt.

          Auch dort ist nichts zu finden.

          Einen schönen Dienstag noch.

          Gruß, Ashura

          --
          sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
          mathbr:del.icio.us/ mathbr:w00t/
          1. Hallo Ashura,

            Welche ist die aktuelle Version?

            ----------------------------------------------------------------------------
            christian@cobalt ~ $ 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.
            christian@cobalt ~ $ mv --version
            mv (coreutils) 5.2.1
            Written by Mike Parker, 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.
            ----------------------------------------------------------------------------

            Viele Grüße,
            Christian

            1. Hallo Christian.

              cp (coreutils) 5.2.1
              […]
              mv (coreutils) 5.2.1
              […]

              Hm, ist dies nun älter oder neuer als 5.93?

              Einen schönen Dienstag noch.

              Gruß, Ashura

              --
              sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
              mathbr:del.icio.us/ mathbr:w00t/
              1. Hallo Ashura,

                cp (coreutils) 5.2.1
                […]
                mv (coreutils) 5.2.1
                […]

                Hm, ist dies nun älter oder neuer als 5.93?

                Frag mich was leichteres. ;-) Zur Info: Bei mir läuft ein Gentoo, bei dem ich coreutils allerdings einige Zeit (2-3 Monate) nicht aktualisiert habe. Ich kann mir aber nicht vorstellen, dass die so ein Feature rausschmeißen.

                Viele Grüße,
                Christian

                1. Hallo Christian.

                  Hallo Ashura,

                  cp (coreutils) 5.2.1
                  […]
                  mv (coreutils) 5.2.1
                  […]

                  Hm, ist dies nun älter oder neuer als 5.93?

                  Frag mich was leichteres. ;-)

                  Ein eindeutiges Versioning-System hat schon was …

                  Zur Info: Bei mir läuft ein Gentoo, bei dem ich coreutils allerdings einige Zeit (2-3 Monate) nicht aktualisiert habe.

                  Das war der entscheidende Hinweis. Laut Aussage dieses Threads bei linuxforen.de sind die coreutils unter Gentoo gepatcht, um den Fortschrittsbalken zu ermöglichen. (Den Patch gibts ebenfalls in besagtem Thread.)

                  Vielleicht probiere ich ihn auch einmal bei Gelegenheit aus.

                  Einen schönen Dienstag noch.

                  Gruß, Ashura

                  --
                  sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
                  mathbr:del.icio.us/ mathbr:w00t/
                  1. Hallo Ashura,

                    Das war der entscheidende Hinweis. Laut Aussage dieses Threads bei linuxforen.de sind die coreutils unter Gentoo gepatcht, um den Fortschrittsbalken zu ermöglichen. (Den Patch gibts ebenfalls in besagtem Thread.)

                    Ah, danke, wieder etwas gelernt.

                    Viele Grüße,
                    Christian

                2. Hallo Ashura,

                  cp (coreutils) 5.2.1
                  […]
                  mv (coreutils) 5.2.1
                  […]

                  Hm, ist dies nun älter oder neuer als 5.93?

                  Waere ja mal interessant..
                  laut eix ist 5.94 neuer (und unstable), zumindest wenn ich das richtig lese:

                  * sys-apps/coreutils
                       Available versions:  5.2.1-r2 5.2.1-r6 5.2.1-r7 ~5.3.0-r1 ~5.3.0-r2 ~5.93 ~5.94-r1
                       Installed:           5.2.1-r7

                  Frag mich was leichteres. ;-) Zur Info: Bei mir läuft ein Gentoo, bei dem ich coreutils allerdings einige Zeit (2-3 Monate) nicht aktualisiert habe. Ich kann mir aber nicht vorstellen, dass die so ein Feature rausschmeißen.

                  selber spass bei mir, gentoo -- allderings up2date.

                  Viele Grüße,
                  Christian

                  Mfg entropie

                  --
                  Whenever people agree with me I always feel I must be wrong.
                    -- Oscar Wilde
        2. Hoi!

          Beide Programme verstehen in der aktuellen Version -g oder --progress, mit denen sich so etwas erreichen lässt. Allerdings ist die Manual-Page zu beiden Tools hoffnungslos veraltet (Anno 1998), die Info-Seite ist etwas aktueller (steht kein Datum dabei, es werden aber mehr Optionen erwähnt) aber immer noch total veraltet (kein -g/--progress). Nur beim Ausführen von cp --help und mv --help wird die Option erwähnt.

          Juhu, total irre. Danke.

          meine manpage zeigt folgendes datum (nicht das das was sagt)
          2003-11

          die optionen tauschen allerdings nicht auf.

          Mfg entropie

          --
          Whenever people agree with me I always feel I must be wrong.
            -- Oscar Wilde
  3. Hallo,

    die Progressbar ist immer auf 100% des Bildschirms skaliert. Wie aber wird das gemacht? Gibt es dafür spezielle Sonderzeichen?

    Gruß aus Berlin!
    eddi

    --
    Wer Rechtschreibfehler findet, darf sie behalten.
    1. Hallo eddi,

      die Progressbar ist immer auf 100% des Bildschirms skaliert. Wie aber wird das gemacht? Gibt es dafür spezielle Sonderzeichen?

      Es gibt ein IOCTL um die Parameter des Bildschirms zu erhalten. Wenn Du Dir den Patch ansiehst, dann siehst Du dort folgende Zeile (u.a., da sind noch welche im Header um das ganze einzubinden):

      #ifdef TIOCGWINSZ  
         struct winsize ws;  
        
         if (ioctl (STDOUT_FILENO, TIOCGWINSZ, &ws) != -1 && ws.ws_col != 0)  
           {  
             line_length = ws.ws_col;  
           }  
      #endif
      

      Wenn Dich das Thema interessiert, kauf Dir / leih Dir ein Buch über UNIX-Systemprogrammierung aus, z.B. Stevens, Advanced Programming in the UNIX environment.

      Viele Grüße,
      Christian

      1. Hallo Christian,

        danke!

        Gruß aus Berlin!
        eddi

        --
        Wer Rechtschreibfehler findet, darf sie behalten.