Kettaruum ja süsteemi maht
Selles peatükis vaatame, kuidas kontrollida, kas kettal on ruumi ja millised kaustad selle ruumi ära kasutavad.
Loogika
Algajal tuleb väga kiiresti ette küsimus:
- kuhu ruum kadus
- kui suur mingi kaust on
- kas kettal on üldse veel vaba ruumi
Siin on oluline eristada kahte eri vaadet:
- faili- või kettasüsteemi üldseis
- konkreetse kausta või puu suurus
df ja du lahendavad need kaks eri küsimust.
Kiirspikker
df -hnäitab failisüsteemide kasutustdf -h .näitab selle koha failisüsteemi, kus sa parajasti oleddu -sh .näitab praeguse kausta kogusuurustdu -sh *näitab alamkaustade ja failide suurusidu -sh * | sort -hsorteerib väiksemast suuremanidu -a . | sort -nr | lessnäitab suurimaid kirjeid detailsemalt
Käivita need käsud
df -h
df -h .
du -sh .
du -sh * 2>/dev/null
du -sh * 2>/dev/null | sort -h
Kui tahad näha palju detailsemalt, kuhu ruum kaob, siis väga praktiline on:
du -a . 2>/dev/null | sort -nr | less
Kui tahad vaadata oma kodukataloogi tüüpilisi “ruumisööjaid”, siis proovi:
cd "$HOME"
du -sh Downloads Documents Desktop 2>/dev/null
df: kui palju ruumi failisüsteemil on
df vastab küsimusele:
“Kui täis see kettasüsteem või mount point on?”
Näide:
df -h
Lipp -h tähendab inimesele loetavat vormi, näiteks:
KMGT
Kui tahad teada just selle koha tausta, kus sa töötad, siis on väga praktiline:
df -h .
See on hea nipp, sest mitme mount point'i puhul ei huvita sind alati kogu masin, vaid just see failisüsteem, mille peal su töökaust asub.
du: kui suur see kaust ise on
du vastab küsimusele:
“Kui palju ruumi see kaust või failipuu kasutab?”
Näited:
du -sh .
du -sh *
Siin tähendab:
-ssummary ehk kogu kokkuvõte-hinimesele loetav suurus
See kombinatsioon on üks praktilisemaid ruumikontrolle kogu käsureal.
Kui tahad ainult ühte kogusummat, siis sobib hästi:
du -sh .
Kui tahad näha ka faili- ja alamkaustade taset detailsemalt, siis:
du -a .
Siin tähendab:
-anäita mitte ainult kaustu, vaid ka üksikfaile
Just see teeb du-st väga praktilise veaotsingutööriista siis, kui ruum on “kuskile ära kadunud”.
df ja du ei vasta samale küsimusele
Oluline vahe:
dfräägib failisüsteemi tasemestduräägib faili või kausta tasemest
Näiteks:
df -hvõib näidata, et kettal on alles ainult 5% vaba ruumidu -sh Downloadsvõib näidata, et suure osa sellest võtabDownloads
Kõige tavalisem töövoog
Kui ruum tundub otsas olevat, siis liigu nii:
- vaata
df -h, kas probleem on päriselt ruumis - mine kausta, kus arvad suure sisu olevat
- käivita
du -sh * - sorteeri tulemus, et näha suurimaid kohti
Näide:
cd "$HOME"
du -sh * 2>/dev/null | sort -h
Sellest on tihti kohe näha, kas ruumi söövad näiteks:
- allalaadimised
- vana projektikaust
- andmefailid
- buildi väljundid
Kui sellest ei piisa ja tahad minna sügavamale, siis järgmine väga tavaline päriselu käik on:
du -a . 2>/dev/null | sort -nr | less
Selle loogika on:
du -a .käib kogu puu läbi ja annab iga faili või kausta suurusesort -nrpaneb suurimad kirjed ettelesslubab tulemust rahulikult sirvida ja otsida
See on üks kõige praktilisemaid “mis siin kõige rohkem ruumi võtab?” käsujadasid kogu Unix-laadses käsureas.
du -a | sort -nr | less päris töös
See kuju väärib eraldi väljaütlemist, sest seda kasutatakse palju rohkem kui alguses arvata võiks.
Näide:
cd "$HOME"
du -a . 2>/dev/null | sort -nr | less
Mida siin vaadata:
- kõige ülemised read on tavaliselt suurimad ruumisööjad
- kui näed mõnd kausta, mine sinna sisse ja korda sama käsku kitsamas kohas
lesssees saad otsida näiteks/Downloads,/node_modules,/.git,/.venv
See on hea iteratiivne tööviis:
- alusta suuremast kohast
- leia suurim alamkaust või fail
- mine sinna sisse
- korda sama analüüsi
Inimloetav vs toores numbriline sort
Kõige universaalsem kuju on:
du -a . 2>/dev/null | sort -nr | less
Seda on hea kasutada, sest:
sort -ntöötab numbrite peal selgeltduannab suurused ühes sisemises ühikus- tulemus on hästi võrreldav
Mõnes keskkonnas meeldib inimestele rohkem ka inimloetav kuju:
du -ah . 2>/dev/null | sort -hr | less
Aga see eeldab, et sinu sort toetab -h lippu. Selle õpiku põhikuju on seetõttu pigem du -a . | sort -nr | less.
Peidetud kaustad võivad olla kõige suuremad
Väga sageli söövad ruumi just peidetud kaustad, mida tavaline ls kohe silma ette ei too, näiteks:
.git.venv.cache.npm
Selle jaoks on väga praktiline:
du -sh .[!.]* * 2>/dev/null | sort -h
See näitab koos:
- peidetud kirjed
- tavalised kirjed
Kui ruum “justkui kadus ära”, siis see on üks esimesi käske, mida tasub proovida.
Ettevaatus
Kõiki suuri käske ei tasu pimesi käivitada suvalises kohas.
Näiteks:
du -sh /
võib olla aeglane ja mitte eriti informatiivne, eriti kui sul ei ole õigusi kõiki kaustu lugeda.
Praktilisem on alustada kitsamalt:
du -sh .du -sh *du -sh "$HOME"/*
Kas failide arv ja suurus on sama asi?
Ei ole.
- üks väga suur fail võib võtta rohkem ruumi kui tuhat väikest
- samas tuhanded väikesed failid võivad teha töö aeglaseks või segaseks
Kui tahad lisaks suurusele aru saada ka failide hulgast, siis saad vaadata näiteks:
find . -type f | wc -l
See ei mõõda ruumi, aga aitab näha, kas probleem võib olla ka väga suures failide arvus.
Minitest
- Uuri välja, kui palju vaba ruumi on failisüsteemil, kus asub sinu praegune töökaust.
- Vaata, kui suur on sinu praegune kaust kokku.
- Sorteeri praeguse kausta alamkaustad suuruse järgi.
- Pane ühe lausega kirja, mis vahe on
df -hjadu -sh .vahel.