ls - Ordner sortieren nach Größe

GNU/Linux-, *BSD- und Fricklerforum
Antworten
much
Sarge
Sarge
Beiträge: 137
Registriert: Nov 2002

ls - Ordner sortieren nach Größe

Beitrag von much »

Also folgendes Problem:
Ich habe verschiedene Ordner, die unterschiedlich großen Inhalt haben und möchte diese der größe nach sortieren.

Bei Dateien hab ich das bisher mit "ls -Ssh | less" gemacht.
Doch dummerweise werden damit alle Ordner nur mit 4.0k aufgeführt und nicht "richtig" sortiert.

Ich hoffe ihr versteht was ich meine und wie ich das möglichst einfach angezeigt bekomme :D

danke
--much
Linux is like a wigwam - no windows, no gates, apache inside
Mithrandir
Razor
Razor
Beiträge: 1962
Registriert: Aug 2000
Wohnort: Aachen

Beitrag von Mithrandir »

'du' ist ein Befehl, der dir Ordner und ihre Größen anzeigt.
[small]Viele Namen habe ich in vielen Ländern. Mithrandir heiße ich bei den Elben, Tharkûn bei den Zwergen;
Olórin war ich in meiner Jugend im Westen, der vergessen ist, im Süden Incánus, im Norden Gandalf; in den Osten gehe ich nicht.


J.R.R. Tolkien - The Lord Of The Rings[/small]
much
Sarge
Sarge
Beiträge: 137
Registriert: Nov 2002

Beitrag von much »

Ist schon klar, aber ich will die Ordner nach Größe sortiert haben. ;)
Linux is like a wigwam - no windows, no gates, apache inside
pawlak
Assist
Assist
Beiträge: 5811
Registriert: Feb 2002

Beitrag von pawlak »

omg wenn cirad das sieht! ;)
Original geschrieben von pagenez
ach und pawlak?
du verhurrtes stück einer dreckwurst, halt doch bitte dein maul, ja? wer absolut kein real-life hat, einer wie du, der absolut nichts zu tun hat, als seine scheiße im irc auf andere abzulassen, sollte sich seinen daumen in das arschloch schieben, die augen schließen und dabei an *****n denken.
alles klar?
gut!
much
Sarge
Sarge
Beiträge: 137
Registriert: Nov 2002

Beitrag von much »

Original erstellt von pawlak
omg wenn cirad das sieht! ;)
hehe, der war gut :D
dann bekomm ich endlich mal ne richtige antwort ...







... in form von etlichen Din-A4 seiten :ugly:
Linux is like a wigwam - no windows, no gates, apache inside
Chawki

Beitrag von Chawki »

Aus meinen Notizen:

Die Verzeichnisse nach der (rekursiven) Speicherbelegung auflisten:
find -type d -maxdepth 1 | xargs du -sm | sort +0n | tail -50

Die Speicherbelegung der Verzeichnisse im aktuellen Verzeichnis:
du -h --max-depth=1
und für ein Verzeichnis:
du -sh <verzeichnis>

Vielleicht auch interessant:

Die (50) größten Dateien im System finden:
cd /; ls -laFR | sort +4n | tail -50
Unschön: Auch Device-Dateien u. /proc-Dateien werden aufgelistet und der absolute Pfad fehlt.
Alternativen: ls -alSr im akt. Verz.,
(find . -ls | sed -e 's/ */ /g;' | sort +6n)
colo2

Beitrag von colo2 »

Ordner gibt's keine...

Code: Alles auswählen

find . -maxdepth 1 -type d | du | sort -r
kannst du auch noch mit tail -n<zeilenanzahl> limitieren, wenn's zu viele sind. Wenn du die Größe absteigend sortiert haben willst, einfach den "-r"-Parameter von Sort omittieren.
edgewalker

Beitrag von edgewalker »

du -cks */

Eselsbrücke: "ducks".

Wenn man den Slash weglässt, tauchen auch alle Dateien auf.

Will man auch die Dotfiles haben, geht das wohl noch am einfachsten mit

( shopt -s dotglob ; du -cks */ )

Die Ausgabe kann man dann nach belieben sortieren, zB

( shopt -s dotglob ; du -cks */ ) | sort -rnsk1
bzw
du -cks */ | sort -rnsk1
much
Sarge
Sarge
Beiträge: 137
Registriert: Nov 2002

Beitrag von much »

Danke nobody für den Tip mit den 50 größten Dateien, das ist auch praktisch.

Also ich hab eben folgendes probiert (nach colos Methode):

Code: Alles auswählen

find . -maxdepth 1 -type d | du -h | sort -r
Das ist genau das was ich wollte, aber eins wundert mich noch - warum werden manche Sachen nicht richtig einsortiert?
Aha, der sortiert nur nach dem ersten Zeichen, aber seht doch einfach selbst:

Code: Alles auswählen

92K     ./306362
52K     ./349699
48K     ./148568
44K     ./114020
36K     ./231296
36K     ./225739
36K     ./158618
36K     ./132911
[red]348K    ./309577[/red]
32K     ./137083
28K     ./812208
24K     ./110078
24K     ./103312
[red]240K    ./220017[/red]
20K     ./620927
20K     ./331102
20K     ./319238
20K     ./283419
20K     ./196113
20K     ./165766
20K     ./111622
16K     ./968863
16K     ./831948
Wenn man das noch lösen könnte wäre die Sache perfekt ;)
Linux is like a wigwam - no windows, no gates, apache inside
much
Sarge
Sarge
Beiträge: 137
Registriert: Nov 2002

Beitrag von much »

Original erstellt von edgewalker
du -cks */

Eselsbrücke: "ducks".
Da kommt bei mir nix vernünftiges dabei raus :/

Code: Alles auswählen

24      103312
24      110078
20      111622
44      114020
12      124144
16      124489
12      126399
16      131609
36      132911
32      137083
48      148568
16      150553
16      152356
12      157899
36      158618
Sehr seltsam.
Ich will die Verzeichnisse doch nicht nach ihrem Namen ordnen, sondern der größe nach :)
Linux is like a wigwam - no windows, no gates, apache inside
edgewalker

Beitrag von edgewalker »

Original erstellt von much
Also ich hab eben folgendes probiert (nach colos Methode):

Code: Alles auswählen

find . -maxdepth 1 -type d | du -h | sort -r
Das ist falsch, du ignoriert seine Standardeingabe, das find kannst du dir also sparen.
Das ist genau das was ich wollte, aber eins wundert mich noch - warum werden manche Sachen nicht richtig einsortiert?
Erstens wird per Default alphabetisch sortiert, 10 kommt also vor 2. Das kann man mit -n ändern. Dann hast du aber immer noch das Problem, dass 20K "grösser" sind als 2M.

Du kannst also nicht mit lesbaren Einheiten arbeiten.

(Übrigens, editierten Post von mir nochmal lesen.)
much
Sarge
Sarge
Beiträge: 137
Registriert: Nov 2002

Beitrag von much »

Problem scheint gelöst (man sort lesen hilft eben doch ^^):

Code: Alles auswählen

find . -maxdepth 1 -type d | du -h | sort -rg
Allerdings muss jetzt das find noch raus, ist ja laut dir überflüssig. Aber das Ergebnis stimmt:

Code: Alles auswählen

348K    ./3095772
240K    ./2200170
92K     ./3063624
52K     ./3496997
48K     ./1485682
44K     ./1140200
36K     ./2312964
36K     ./2257392
36K     ./1586188
36K     ./1329116
32K     ./1370839
/edit: Man kann dann eben immer entscheiden, ob man sein Ergebnis in Megabyte(-m) oder Kilobyte(-k) haben will.
"du -cksm * | sort -rnsk1"
Ist genau das was ich brauchte.
Linux is like a wigwam - no windows, no gates, apache inside
edgewalker

Beitrag von edgewalker »

Wenn du -m hast, brauchst du -k nicht -- also du -cms.
much
Sarge
Sarge
Beiträge: 137
Registriert: Nov 2002

Beitrag von much »

Hab ich übersehen.

Mist :ugly:
Linux is like a wigwam - no windows, no gates, apache inside
cirad

Beitrag von cirad »

@pawlak:
Sehr richtig. <:
Antworten