C-Kurs/ckdu
Diese Aufgabe ist eine besondere Aufgabe. Sie wird(wurde) in der 7.Vorlesung fast komplett Implementiert. Da dies sehr viel ist - und damit wichtige Fragen dort geklaert werden koennen, probiert diese Aufgabe zu Hause uebers Wochenende doch schon mal selbst zu implementieren.
Inhaltsverzeichnis
Aubau dieser Seite
Es gibt mehrere Stufen. D.h. wir haben diese grosse Aufgabe schon fuer euch in kleine Happen geteilt. Wenn ihr also _wirklich_ nicht weiterkommt, koennt ihr euch in der Vorgabe (base) der naechst hoeheren Stufe angucken wie wir es geloest haben. Aber bedenke: Jede Stufe wird anspruchsvoller!
Funktion
ckdu soll wie das Tool du auch, eine Auflistung aller Dateien/Ordner und deren Groesse. Zusaetzlich soll ckdu diese Liste auch sortieren und menschlich Lesbar gestalten (in KB,MB,GB).
Stufen
1. Stufe
Ordnerinhalt einlesen und ausgeben. Aehnliche wie: ls -1s
so koennte das dann aussehen:
4 img 29832 HelloWorld.pdf 0 HelloWorld.snm 36 HelloWorld.tex
Vorgabe
- hier Link zur Vorgabe einfuegen
2. Stufe
Refactoring ! Eingelesene Inhalte in einer Liste speichern. Diese Liste wieder Ausgaben.
3. Stufe
Ordnerinhalte rekursiv aufaddieren
so koennte das dann aussehen:
153M img/ 12,9M img/uebung.png 24,9M img/vortrag.png 86,1M img/world2.png 3,9M img/world.png 30M HelloWorld.pdf 0 HelloWorld.snm 36K HelloWorld.tex
4. Stufe
sortieren nach Groesse (absteigend)
so koennte das dann aussehen:
153M img/ 86,1M img/world2.png 24,9M img/vortrag.png 12,9M img/uebung.png 3,9M img/world.png 30M HelloWorld.pdf 36K HelloWorld.tex 0 HelloWorld.snm
5. Stufe
In dieser Stufe folgen alle wichtigen Sachen, die man noch beachten muss, wenn man auf dem Dateisystem operiert. Ausserdem bieten wir einige Ideen mit denen du dein ckdu erweiteren kannst :)
- Symlinks nur einmal Folgen (parameter)
- Hardlinks nur einmal Folgen
- Fehler-handling
- du-parameter-kompatible:
- "--max-depth"
- getopt
- device verlassen
- Wird nicht von den Betreuern betreut:
- Farbige ausgabe
- interaktive