Kettaruum ja süsteemi maht
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.
Kiirülevaade
Erista kaht küsimust: kas failisüsteemis on ruumi ja mis konkreetse kausta sees ruumi võtab.
| Käsk või töövoog | Milleks | Mida tavaliselt näed |
|---|---|---|
df -h | vaata failisüsteemide mahtu | tabel kogu-, kasutatud ja vaba ruumiga |
du -sh . | mõõda praegust kausta kokku | üks kokkuvõtlik rida |
du -a . | mõõda kõik kirjed | pikk nimekiri failidest ja kaustadest |
sort | tõsta suuremad ette | samad read uues järjekorras |
less | lehitse pikka nimekirja | rahulik lehitsetav vaade |
Tüüpilised algaja vead
- arvatakse, et
dfjaduannavad sama vastuse - vaadatakse ainult kogumahtu, mitte seda, milline kaust ruumi võtab
- unustatakse peidetud kaustad nagu
.git,.venvvõi.cache
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 inimloetavad mahud 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 detailsemalt näha, kuhu ruum kaob:
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, millisel failisüsteemil praegune töökaust asub:
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
Siin tähendab sort -h, et sorditakse inimloetavaid suurusi nagu 12K, 450M ja 3.1G, mitte ainult paljaid numbreid.
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
Peidetud kaustade kaasamiseks kasuta:
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.
Peatüki täisspikker
Baas ja süsteemipilt
Eesmärk
erista kogu failisüsteemi seisu ja ühe konkreetse kausta mahtu; df ja du vastavad eri küsimustele
Põhikujud
df -hkõigi failisüsteemide mahtdf -h .siinse failisüsteemi mahtdu -sh .praeguse kausta summadu -sh * 2> /dev/nullalamkirjed ilma vigadetadu -sh * 2> /dev/null | sort -halamkirjed inimloetava mahu järgidu -a . 2> /dev/null | sort -nr | lesssuurimad kirjed detailsemalt
Olulised võtmed ja vood
-hinimloetavad ühikud-sainult kokkuvõte-anäita ka üksikuid kirjeid2> /dev/nullpeida ligipääsuvead| sort -hsordi inimloetavad mahud väiksemast suuremani| sort -nr | lesssuurimad ette