In deze opgave gaan we wat spelen met hoe we kijken naar het ruimtegebruik op de verschillende schijven. We gaan hiervoor gebruik maken van de commando’s du
(disk usage, print uit hoeveel ruimte een bestand inneemt; indien dit bestand een directory is, dan print het recursief het ruimtegebruik af van alle subdirectories), en df
(disk free, print uit hoeveel plaats er nog vrij is op alle disks). Beide commando’s gebruiken beiden als grootte-eenheid een /block/ (wat dit precies wil zeggen is niet relevant voor jullie). Dit is vooral vervelend en produceert onleesbare en oninterpreteerbaar grote getallen. Daarom hebben beide programma’s een optie -h
, welke aangeeft dat er human-readable uitvoer gegenereerd wordt: de uitvoer zal automatisch K voor KiB, M voor MiB, etc. gebruiken, en de meest passende eenheid kiezen.
Filesystem
weg.) Je kan hier echter niet zomaar cut
gebruiken: er wordt een variabel aantal spaties gebruikt om de kolommen van elkaar te scheiden! Je kan echter gebruik maken van sed
om hier rond te werken.sed
nu om in de uitvoer de volgorde van de kolommen met ‘Mounted on’ en ‘Size’ om te draaien, en enkel deze kolommen over te houden. (Filter opnieuw de eerste lijn die begint met Filesystem
weg.) (Merk op dat je hier, helaas, cut
niet voor kan gebruiken, aangezien cut
de originele volgorde van de velden bewaart.)/usr/lib
. Begin met van al deze subdirectories het human-readable overzicht te printen van hun grootte./usr/lib/
. Dat weten we natuurlijk al, dus dat is wat overbodige informatie. Filter die /usr/lib
dan ook gewoon weg. (Maar dus niet bij de laatste lijn: die eindigt immers op /usr/lib
en niet op /usr/lib/
)(Opgelet: sort
kan pas beginnen sorteren als alle input gekend is. Dus als die heel groot is, zal sort
die input eerst in het geheugen moeten bewaren alvorens te kunnen sorteren, en kan dat sorteren een hele tijd duren. Pas dus wat op met té grote streams/bestanden te sorteren.)