jobo: mit shell nur die größten Dateien ermitteln

Hallo,

mit du bekomme ich ja rekursiv alle Dateien und Unterverzeichnise in ihrer Größe angezeigt. Ich würde gerne mal Filtern. Nur die über x-MB groß. Pipen nach grep "M" ist etwas unscharf. Sortiert wäre natürlich grandios. Aber pipen nach sort bringt eben alle 1-er zuerst. Wo recherchiere ich am Besten?

Gruß

jobo

  1. Moin!

    Hm. Die fünf größten Dateien im System:

    cd /
    sudo du -xm | sort -n | tail -n5

    Willst jetzt wirklich die oberhalb einer bestimmten Größe, dann empfehle ich Dir zur Recherche ein man awk oder info awk an der shell.

    MFFG (Mit freundlich- friedfertigem Grinsen)

    fastix

    1. Tach auch.

      Willst jetzt wirklich die oberhalb einer bestimmten Größe, dann empfehle ich Dir zur Recherche ein man awk oder info awk an der shell.

      Oder einfach ein
      find . -size +1M

      Bis die Tage,
      Matti

    2. Hallo fastix,

      Hm. Die fünf größten Dateien im System:

      cd /
      sudo du -xm | sort -n | tail -n5

      Nein, das ist nicht gewährleistet.

      Es werden die fünf *Verzeichnisse* angezeigt, die im aktuellen Dateisystem den größten Platz einnehmen. Kopiere eine riesige Datei ins Wurzelverzeichnis (ich weiß, das macht man nicht), die größer ist als das "fünftgrößte" Verzeichnis - und diese Datei wird nicht angezeigt.

      Es ist logisch, dass das Wurzelverzeichnis am größten ist, der nächste Eintrag bei Deiner Anweisung muss ein Verzeichnis der ersten Ebene sein.

      Warum also -x?
      Warum -m?
      Warum nicht -a?
      Wäre nicht eher -S sinnvoll?

      siehe man du

      Der Hinweis, dass sort -n numerisch sortiert, wäre hilfreich gewesen. sort -g wäre auch eine Möglichkeit, siehe man sort - das hätte Robert noch wissen können.

      Geht es um Nicht-Verzeichnis-Dateien, ist Mattis Ansatz günstiger, geht es um "Speicherplatzfresser" mit vielen kleineren Dateien wie Cache-Verzeichnisse, so empfiehlt sich du.

      Dazu müsste Robert genauer spezifizieren, was er haben möchte.

      Freundliche Grüße

      Vinzenz

      1. Moin!

        Hallo fastix,

        Hm. Die fünf größten Dateien im System:

        cd /
        sudo du -xm | sort -n | tail -n5

        Nein, das ist nicht gewährleistet.

        Du hast recht. Ich hatte mir das mal als hilfreich notiert nachdem ich ein Problem mit mit einem überlaufenden Logfile (~ 30 Gb) bei meiner SuSE hatte. Es war übrigens ein durchgedrehter UpdateDämon.  Mein Problem löste es, die gestellte Aufgabe wird dadurch gar nicht gelöst. Insofern ist Dein "nicht gewährleistet" ein übermäßig höflicher Euphemismus.

        MFFG (Mit freundlich- friedfertigem Grinsen)

        fastix

      2. Hallo Vinzenz,

        merci. Bin aktuell nur sporadisch am Rechner.

        Dazu müsste Robert genauer spezifizieren, was er haben möchte.

        Naja, eben auf einen Blick sortiert die größten Dateien oder Verzeichnisse. Unter Windows nutze ich "Treesize", wenn der Speicherplatz nicht mehr ausreicht. Und gehe dann Top down die Verzeichnisse und Dateien durch, mit dem Größten angefangen.

        Dank und Gruß

        Robert aka jobo

        1. Moin!

          Hallo Vinzenz,

          merci. Bin aktuell nur sporadisch am Rechner.

          Dazu müsste Robert genauer spezifizieren, was er haben möchte.

          Naja, eben auf einen Blick sortiert die größten Dateien oder Verzeichnisse. Unter Windows nutze ich "Treesize", wenn der Speicherplatz nicht mehr ausreicht. Und gehe dann Top down die Verzeichnisse und Dateien durch, mit dem Größten angefangen.

          Für Dateien:

          sudo find -size +1G -exec ls -l {} ;  2> /dev/null | sort -nrt " " -k5 | head -n5

          findet alle Dateien mit mehr als einem Gigabyte  Größe, macht mit den Funden ein ls -l (Fehler werden zum Mülleimer /dev/null umgeleitet). Die Funde werden absteigend, numerisch nach der 5. Spalte sortiert, wobei als Trenner das Leereichen angenommen wird. Es werden nur die ersten 5 Zeilen ausgegeben.

          Die Lösung für die Verzeichnisse hats Du schon:

          sudo du -xm | sort -n | tail -n5

          wobei Du bitte daran denkst, dass mit der Option "x" nur das aktuelle Datesystem (keine mounts!) ausgewertet wird.

          MFFG (Mit freundlich- friedfertigem Grinsen)

          fastix