Kako dobiti veličinu direktorija u Linuxu

How Get Size Directory Linux



Poznavanje veličine direktorija u Linuxu nije tako jednostavno kao što zvuči. Naredba ls -s prikazat će datoteke i poddirektorije s njihovim veličinama. Međutim, veličine (oko 4096 bajtova) navedene za direktorije nisu upotreba diska. Veličina koja se vidi za imenik je veličina metapodataka direktorija.

Metapodaci su podaci o podacima. Prividna veličina je veličina podataka koji su važni običnom korisniku računala. Sadržaj (tekst) korisnikovih pisama, slika, video zapisa itd. Čine prividnu veličinu. Ti se podaci ne čuvaju proizvoljno u računalu. Podaci prividne veličine moraju se držati na kontrolni način. Mora biti prepoznatljiv. Mora biti potpuna. Za to postoje i drugi zahtjevi. Za postizanje ovih dodatnih zahtjeva potrebni su neki dodatni podaci, a ti dodatni podaci su metapodaci.







Upamtite, u svesku postoji samo jedan direktorij. Ostalo su poddirektoriji. Iz korijenskog direktorija nastaju poddirektoriji, koji dovode do pada ostalih poddirektorija. Međutim, poddirektoriji se obično jednostavno zovu direktoriji. Dakle, postoji samo jedno stablo direktorija.



Dakle, ls -s nije korisno za dobivanje veličine direktorija. Koja je onda naredba korisna? - Zapovjed du. du označava upotrebu diska. Ispisuje korištenje direktorija na disku.



Ovaj članak objašnjava različite značajke naredbe du u Linuxu, koja pruža različitim programerima načine za poznavanje veličina direktorija i njihovih poddirektorija. Bash je ljuska koja se koristi za uzorke koda ovog članka.





Sadržaj članka

du bez Opcije ili Argumenta

Trenutni radni direktorij je direktorij u kojem korisnik trenutno radi. Odzivnik obično prikazuje trenutni radni direktorij. Upisivanje du bez ikakve opcije i argumenta, ovako:



od

a zatim pritiskom na tipku Enter prikazat će se upotreba diska za sve poddirektorije trenutnog radnog imenika. Prikazat će te podatke za podstablo trenutnog radnog imenika. Točka na zaslonu predstavlja trenutni radni direktorij.

Svaka staza podstabla predstavljena je u retku, na zaslonu. Svaki redak počinje veličinom direktorija (koji je prezime na putu). Zaslon može biti nešto poput:

8./dir1/dir2/dir3/dir4

12./dir1/dir2/dir3

16./dir1/dir2

dvadeset./dir1

Uočite da nije jasno je li veličina u bajtima ili kilobajtima ili megabajtima ili gigabajtima. Kilobajta simbola, K znači 1024 bajta; Megabajti simbola, M znači 1.048.576 bajtova; Gigabajti simbola, G znači 1.073.741.824 bajta. Da bi se prikazali višekratnici, treba koristiti opciju -h (prekidač), kako slijedi:

od -h

Zaslon bi tada izgledao ovako:

8,0K./dir1/dir2/dir3/dir4

12.000/dir1/dir2/dir3

16.000/dir1/dir2

20 tisuća./dir1

Kad se koristi opcija -h, kaže se da su veličine u čitljivom obliku.

Napomena: s opcijom –all naredba du će također upotrijebiti disk za datoteke; međutim, upotreba diska za datoteke neće biti obrađena u ovom članku.

Veličina ostalih imenika

Tipičan apsolutni put za Linux volumen je sljedeći:

/Dom/Ivan/reći/dirTwo/dirTri/dirFour

Prvi / je korijenski direktorij. Ovaj direktorij ima neposredne podimenike, uključujući i kućni direktorij. Domaći direktorij ima direktorij korisnika. Ako se korisničko ime zove John, tada može imenovati korisnički imenik, john. Korisnički imenik identificiran je ~. Dakle, korisnik može koristiti naredbu cd ~ za pristup svom direktoriju iz bilo kojeg imenika. dirOne je direktorij koji je stvorio korisnik. Korisnik može stvoriti i druge direktorije na ovoj razini. dirTwo, dirThree i dirFour su poddirektoriji njihovih prethodnih direktorija, koje je stvorio korisnik.

Korisnik može znati veličinu bilo kojeg drugog direktorija i njegove poddirektorije (podstablo) iz bilo kojeg direktorija, zaobilazeći apsolutni put kao argument. Na primjer, ako je potrebno korištenje diska,

/Dom/Ivan/reći/dirTwo

tada bi naredba bila:

od -h /Dom/Ivan/reći/dirTwo

ili

od -h~/reći/dirTwo

gdje ~ predstavlja imenik korisnika.

Da bi koristio relativni put, korisnik mora već biti u odgovarajućem roditeljskom direktoriju. Na primjer, ako se prikazuje upit,

Ivan@domaćin: ~/recimo $

što znači da je korisnik u direktoriju,/home/john/dirOne, tada će sljedeća naredba dati isti rezultat kao gornja naredba:

od -hdirTwo

Putevi bi i dalje bili relativni. Za prikaz istih podataka za trenutni direktorij ne koristite argumente ili koristite točku.

Ova se shema može koristiti za dobivanje veličine samo jednog direktorija, posljednjeg na putu (kojem prethodi put). Moguće je dobiti veličinu direktorija usred staze - pogledajte exclude = PATTERN ispod.

Ukupno

Može se proizvesti velika ukupna veličina svih uključenih direktorija. Za gornju situaciju naredba bi bila:

od -h --ukupno

prividne veličine

Prividna veličina obično je manja od upotrebe diska. Međutim, u nekim je situacijama prividna veličina veća od upotrebe diska; razlog - vidjeti kasnije. Naredba za dobivanje prividnih veličina za gornju relativnu putanju bila bi:

od -h -prividne veličinedirTwo

Maksimalna dubina

S –max-depth = 0, du ispisuje veličinu samo trenutnog radnog imenika; s du –max-depth = 1, du ispisuje veličinu trenutnog radnog imenika i veličine svih njegovih poddirektorija prve razine; s –max-depth = 2, du ispisuje veličinu trenutnog radnog imenika i veličine svih njegovih poddirektorija prve razine i svih poddirektorija druge razine; s –max-depth = 3, du ispisuje veličinu trenutnog radnog imenika i sve njegove poddirektorije prve razine, sve poddirektorije druge razine i sve poddirektorije treće razine; to se nastavlja povećanjem vrijednosti max-dubine. Primjer njegove uporabe je:

od -h --max-dubina=2

Sudo naredba

Jedan od direktorija s vlastitim poddirektorijima u korijenskom direktoriju je var. Ako korisnik upiše

od -h /gdje

i pritisne Enter, shvatit će da je dopuštenje za neke imenike odbijeno. Odnosno, ne može znati veličine nekih imenika. Dopuštenje se odbija jer korisnik nije superkorisnik. Superkorisnik ima privilegiju vidjeti veličine (korištenje diska) tih direktorija. Dakle, da bi korisnik stekao tu privilegiju, mora koristiti naredbu sudo na sljedeći način:

sudo od -h /gdje

Ako ljuska od korisnika traži njegovu lozinku, korisnik mora unijeti lozinku i pritisnuti Enter. Pomoću naredbe sudo obični korisnik (programer) može vidjeti veličine svih direktorija u var direktoriju i sličnih direktorija.

Izuzimanje unosa prema veličini

Opcija –threshold = SIZE neće dopustiti popis direktorija čija je veličina manja od SIZE. Za put,

/Dom/Ivan/reći/dirTwo/dirTri/dirFour

s upitom na[zaštićena e -pošta]: ~ $, dakle

od -h --prag= 12K dirOne

gdje 12K znači 12 kilobajta, neće prikazati redak za bilo koji direktorij čija je upotreba diska manja od 12K.

–Isključi = UZORAK

Ova opcija i vrijednost mogu izostaviti retke direktorija koje korisnik ne želi na popisu.

Za izostavljanje retka za zadnji direktorij, dirFour puta

/Dom/Ivan/reći/dirTwo/dirTri/dirFour

naredba bi trebala biti:

od -h --isključiti= reci/dirTwo/dirTri/dirČetiri dirOne

Rezultat će biti nešto poput,

4,0K dirOne/dirTwo/dirTri

8,0K dirOne/dirTwo

12K dirOne

Napomena: veličine nisu uključivale veličinu imenika zadnje razine (dirFour) putanje.

Da biste imali samo veličine direktorija gornje dubine i njihovih podstabala, nemojte imati opcije direktorija niže dubine u opciji. Dakle, s naredbom,

od -h --isključiti= reci/dirTwo/dirTri dirOne

izlaz će biti nešto poput,

4,0K dirOne/dirTwo

8K dirOne

Napomena: veličine su isključile veličine donjih direktorija stabla.

Razmotrimo još jednom, apsolutnu vezu,

/Dom/Ivan/reći/dirTwo/dirTri/dirFour

Sljedeća naredba omogućit će disku korištenje samo direktorija dirTwo, koji je direktorij unutar staze. Naredba je:

od -h --isključiti=/Dom/Ivan/reći/dirTwo/ * /Dom/Ivan/reći/dirTwo

Argument ima sve prethodne direktorije do onog u pitanju. Vrijednost izuzimanja ima sve prethodne direktorije, koji završavaju sa *, odmah iza dotičnog. * znači sve poddirektorije na toj razini (i njihova podstabla). Rezultat će biti nešto poput,

5,0K/Dom/Ivan/reći/dirTwo

Zaključak

Pokušaj da se sazna veličina direktorija pomoću naredbe ls -s dovodi u zabludu. Pomoću njega dobivaju se samo meta-podaci imenika. Da biste znali korištenje direktorija na disku, treba koristiti naredbu du. Kad se koristi s opcijom -h, veličine direktorija su čitljive. Prividna veličina može se dobiti pomoću opcije prividne veličine. Bez ikakvih opcija i argumenata, naredba du samo prikazuje veličine svih poddirektorija trenutnog direktorija, uključujući i onaj trenutnog direktorija. Argument du je put koji može započeti iz korijena. Opcije i neke njihove vrijednosti točno odlučuju kojim će se direktorijima adresirati. Naredba sudo prema zadanim postavkama daje privilegije superusera običnom korisniku.