Andreas Korthaus: Wieviel MB in einem Verzeichnis enthalten?

Hallo!

Kann man unter Linux in der Shell irgendwie abfragen, wieviel MB in einem Verzeichnsi liegen? Also in allen Unterverzeichnissen alle Dateien zusammen?

Grüße
Andreas

  1. use Mosche;

    Kann man unter Linux in der Shell irgendwie abfragen, wieviel MB in einem Verzeichnsi liegen? Also in allen Unterverzeichnissen alle Dateien zusammen?

    man du

    use Tschoe qw(Matti);

    1. Hi!

      man du

      Danke Dir, genau sowas habe ich gesucht, hat nur ist das wirklich nutr eine grobe Schätzung, da es sich um sehr viele Vrzeichisse und verhältnismäßig wenige udn kleine Dateien handelt, ist das extrem u ngenau. es zeit immer mind. 8K an, obwohl das meist unter 2 K liegt... also ist das Ergebnis nichts wert, zumal er  immer 8K anzeig, manchmal auch 12. Gibts da keine genauere Möglichkeit, oder muß ich das gar in PHP machen? Oder kann man da ein kleines bash-Script für schreiben? Nur mit welchen Befehlen?

      Grüße
      Andreas

      1. use Mosche;

        man du

        Mein kurzatmiges Posting tut mir im Übrigen leid - vor lauter antworten habe ich meinen ÜBrigen Text vergessen - sollte keine Geringschätzung a la 'Linksetzer' sein...

        Danke Dir, genau sowas habe ich gesucht, hat nur ist das wirklich nutr eine grobe Schätzung, da es sich um sehr viele Vrzeichisse und verhältnismäßig wenige udn kleine Dateien handelt, ist das extrem u ngenau. es zeit immer mind. 8K an, obwohl das meist unter 2 K liegt... also ist das Ergebnis nichts wert, zumal er  immer 8K anzeig, manchmal auch 12. Gibts da keine genauere Möglichkeit, oder muß ich das gar in PHP machen? Oder kann man da ein kleines bash-Script für schreiben? Nur mit welchen Befehlen?

        Das kommt drauf an, wie genau du wirklich arbeiten willst. Vielleicht hilft dir der Schalter '-b', der 'du' auf einer Genauigkeit von bytes arbeiten lässt.

        Vielleicht als kleiner Tip: 'man du' ist nur ein Teil der Dokumentation, weiter geht es mit 'info du' (ist aber tatsächlich nur ein wenig ausführlicher).

        use Tschoe qw(Matti);

        1. Hi!

          Mein kurzatmiges Posting tut mir im Übrigen leid - vor lauter antworten habe ich meinen ÜBrigen Text vergessen - sollte keine Geringschätzung a la 'Linksetzer' sein...

          Wieso, war doch die Info die ich brauchte ;-)

          Das kommt drauf an, wie genau du wirklich arbeiten willst. Vielleicht hilft dir der Schalter '-b', der 'du' auf einer Genauigkeit von bytes arbeiten lässt.

          nein, das wird lediglich in byte umgerechnet, leider!

          Vielleicht als kleiner Tip: 'man du' ist nur ein Teil der Dokumentation, weiter geht es mit 'info du' (ist aber tatsächlich nur ein wenig ausführlicher).

          Danke! Ist nur leider das falsche tool hierfür :-(

          Grüße
          Andreas

  2. Hallo,

    Kann man unter Linux in der Shell irgendwie abfragen, wieviel MB in einem Verzeichnsi liegen? Also in allen Unterverzeichnissen alle Dateien zusammen?

    Aufgrund der Komplexität von 'du' wolltest Du das ja nicht, oder? ;-)
    Es gibt noch ein kleines Hilfsmittel, das gibt die Größe einer Datei in Bytes an. Mehr nicht.
    http://maddingue.free.fr/softwares/size_of.html
    Da mein Französisch leider nicht reicht, (keine Angst, der Link zum Download ist auch als "sownload" ausgezeichnet ;-), die genaue Lizenez herauszubekommen (scheint Public Domain zu sein, bin mir aber nicht sicher, man müßte ihn mal fragen) kann ich meine Änderungen nicht leider nicht veröffentlichen. (Ist zwar nichts Wesentliches, kümmere ich aber darum wenn Du möchtest).

    Kompiliert wird das Ganze mit
    $ gcc -W -Wall -O3 -o sizeof -size_of-1.1.c
    $ strip sizeof
    installieren mit
    $ su -c 'cp -v sizeof /usr/local/bin/sizeof'
    Wenn die Bash das Programm nicht gleich findet:
    $ hash -r

    Benutzung:
    $ sizeof ~/* # Größe des Homeverzeichnisses
    $ sizeof ./*.tex # Größer aller TeX-Dateien im aktuellem Verszeichnis
    $ sizeof find /usr/bin /usr/local/bin -type f -exec grep "#!/usr/bin/perl" {} \; # Größe aller Perlscripte in /usr/bin und /usr/local/bin (oder besser: alle, die obigen String enthalten ;-)

    Obiges gibt alles in Bytes aus, das mußt Du dann selber ausschauen oder umrechnen lassen. Am kompliziertesten gehts  mit 'bc' ;-)

    $ echo "scale=10; sizeof ./ / 1024 /1024" |  bc

    Gibt die Größe in MB aus.
    Allerdings sollte man da doch lieber 'sizeof' für ändern oder gleich 'du' nehmen. ;-)

    so short

    Christoph Zurnieden

    PS:
    Bitte beachte, daß die "Backticks" sind, keine Apostrophe oder Hochkommata. Wenn Du unsicher bist, was um Himmels Willen ich da meine, kannst Du statt z.B.programm` auch $(programm) nehmen.
    CZ