Hur man får storleken på en katalog i Linux

How Get Size Directory Linux



Att veta storleken på en katalog i Linux är inte så enkelt som det låter. Kommandot ls -s visar filer och underkataloger med deras storlek. Storlekarna (cirka 4096 byte) som anges för katalogerna är dock inte diskanvändning. Storleken som ses för en katalog är storleken på katalogens metadata.

Metadata är data om data. Den uppenbara storleken är storleken på de data som är viktiga för den vanliga användaren av datorn. Innehållet (texten) i användarens bokstäver, bilder, videor etc. utgör den uppenbara storleken. Denna data förvaras inte godtyckligt i datorn. Uppgifterna i skenbar storlek måste hållas kontrollerande. Det måste vara identifierbart. Det måste vara komplett. Det finns andra krav på det. Några extra data behövs för att uppnå dessa extra krav, och dessa extra data är metadata.







Kom ihåg att det bara finns en katalog i en volym. Resten är underkataloger. Rotkatalogen ger upphov till underkataloger, vilket leder till att andra underkataloger går ner. Underkataloger kallas dock vanligtvis helt enkelt kataloger. Och så finns det bara ett katalogträd.



Så ls -s är inte användbart för att få storleken på en katalog. Vilket kommando är då användbart? - Du -kommandot. du står för Diskanvändning. Det skriver ut diskanvändningen av katalogen.



Den här artikeln förklarar de olika funktionerna i du-kommandot i Linux, vilket ger de olika programmeringssätten sätt att känna till katalogernas storlek och deras underkataloger. Bash är skalet som används för kodproverna i denna artikel.





Artikelinnehåll

du utan alternativ eller argument

Den aktuella arbetskatalogen är den katalog som användaren för närvarande arbetar i. Uppmaningen visar normalt den aktuella arbetskatalogen. Att skriva du utan något alternativ och argument, så här:



av

och sedan trycka på Enter-tangenten visas diskanvändningen för alla underkataloger i den aktuella arbetskatalogen. Den kommer att visa denna information för delträdet i den aktuella arbetskatalogen. En prick på displayen representerar den aktuella arbetskatalogen.

Varje sökväg i underträdet representeras i en rad på displayen. Varje rad börjar med storleken på katalogen (som är efternamnet i sökvägen). Displayen kan vara ungefär så här:

8./dir1/dir2/dir3/dir4

12./dir1/dir2/dir3

16./dir1/dir2

tjugo./dir1

Observera att det inte är klart om storleken är i byte eller kilobyte eller megabyte eller gigabyte. Kilobytes symbol, K betyder 1024 byte; Megabyte med symbol, M betyder 1 048 576 byte; Gigabyte med symbol, G betyder 1 073 741 824 byte. För att multiplarna ska anges bör alternativet -h (switch) användas enligt följande:

av -h

Displayen skulle då se ut så här:

8.0K./dir1/dir2/dir3/dir4

12K./dir1/dir2/dir3

16K./dir1/dir2

20K./dir1

När alternativet -h används sägs storlekarna vara läsbara.

Obs! Med alternativet –all kommer du -kommandot också att ge diskanvändning för filer; dock kommer diskanvändning för filer inte att behandlas i den här artikeln.

Storlek på andra kataloger

En typisk absolut väg för en Linux -volym är följande:

/Hem/john/säga/dirTwo/dirThree/dirFour

Den första / är rotkatalogen. Denna katalog har omedelbara underkataloger, inklusive hemkatalogen. Hemkatalogen har användarens katalog. Om användarens namn är John kan han namnge användarens katalog, john. Användarens katalog identifieras med ~. Så kan användaren använda kommandot cd ~ för att nå sin katalog från valfri katalog. dirOne är en katalog som skapats av användaren. Användaren kan också skapa andra kataloger på denna nivå. dirTwo, dirThree och dirFour är underkataloger till sina tidigare kataloger, skapade av användaren.

Användaren kan känna storleken på en annan katalog och dess underkataloger (sub-tree) från valfri katalog, kringgå den absoluta sökvägen som ett argument. Till exempel, om hårddiskanvändning behövs,

/Hem/john/säga/dirTwo

då skulle kommandot vara:

av -h /Hem/john/säga/dirTwo

eller

av -h~/säga/dirTwo

där ~ representerar användarens katalog.

För att använda en relativ sökväg måste användaren redan vara i motsvarande överordnade katalog. Om texten till exempel visas,

john@värd: ~/säg $

vilket innebär att användaren finns i katalogen,/home/john/dirOne, kommer följande kommando att ge samma resultat som ovanstående kommando:

av -hdirTwo

Vägarna skulle fortfarande vara relativa. För att visa samma information för den aktuella katalogen, använd inget argument eller använd pricken.

Detta schema kan användas för att få storleken på endast en katalog, den sista i en sökväg (föregås av sökvägen). Det är möjligt att få storleken på en katalog i mitten av en sökväg - se uteslut = PATTERN nedan.

Grand Total

En total storlek på alla inblandade kataloger kan produceras. För ovanstående situation skulle kommandot vara:

av -h --total

skenbar storlek

Den skenbara storleken är vanligtvis mindre än diskanvändningen. Men i vissa situationer är den skenbara storleken större än diskanvändningen; anledning - se senare. Kommandot för att erhålla de skenbara storlekarna för den relativa sökvägen ovan skulle vara:

av -h --storlekdirTwo

Maximal djup

Med –max-depth = 0, du skriver ut storleken på endast den aktuella arbetskatalogen; med du –max-djup = 1, du skriver ut storleken på den aktuella arbetskatalogen och storleken på alla dess underkataloger på första nivån; med –max-depth = 2, du skriver ut storleken på den aktuella arbetskatalogen och storleken på alla dess underkataloger på första nivån och på alla andra underkataloger på andra nivån; med –max-depth = 3, du skriver ut storleken på den nuvarande arbetskatalogen och alla dess underkataloger på första nivån, och alla dess underkataloger på andra nivån, och alla dess underkataloger på tredje nivån; detta fortsätter med ökande värde för maxdjup. Ett exempel på dess användning är:

av -h --Max djup=2

Sudokommandot

En av katalogerna med egna underkataloger i rotkatalogen är var. Om användaren skriver

av -h /var

och trycker på Enter kommer han att inse att tillstånd nekas för vissa kataloger. Det vill säga, han kan inte veta storleken på vissa kataloger. Tillståndet nekas eftersom användaren inte är superanvändare. Superanvändaren har förmånen att se storleken (diskanvändning) på dessa kataloger. Så för att användaren ska få det privilegiet måste han använda kommandot sudo enligt följande:

sudo av -h /var

Om skalet ber användaren om hans lösenord måste användaren skriva in lösenordet och trycka på Retur. Med kommandot sudo kan den vanliga användaren (programmeraren) se storleken på alla kataloger i var -katalogen och liknande kataloger.

Exklusive poster efter storlek

Alternativet –threshold = SIZE kommer inte att tillåta listningskataloger vars storlekar är mindre än SIZE. För vägen,

/Hem/john/säga/dirTwo/dirThree/dirFour

med uppmaningen kl[e -postskyddad]: ~ $ då

av -h --tröskel= 12K dirOne

där 12K betyder 12 kilobytes, kommer inte att visa raden för någon katalog vars diskanvändning är mindre än 12K.

–Exclude = MÖNSTER

Det här alternativet och värdet kan utelämna katalograder som användaren inte vill ha i listan.

För att utelämna raden för den sista katalogen, dirFour av sökvägen

/Hem/john/säga/dirTwo/dirThree/dirFour

kommandot ska vara:

av -h --utesluta= säga/dirTwo/dirThree/dirFour dirOne

Resultatet blir ungefär,

4.0K dirOne/dirTwo/dirThree

8.0K dirOne/dirTwo

12K dirOne

Obs! Storlekarna har inte inkluderat storleken på sökvägens sista nivåkatalog (dirFour).

Om du bara vill ha storleken på de övre djupkatalogerna och deras underträd har du inte de nedre djupkatalogerna i alternativet. Så med kommandot,

av -h --utesluta= säga/dirTwo/dirThree dirOne

utgången kommer att vara ungefär,

4.0K dirOne/dirTwo

8K dirOne

Obs! Storlekarna har uteslutit storlekarna på trädets nedre spakkataloger.

Tänk igen, den absoluta länken,

/Hem/john/säga/dirTwo/dirThree/dirFour

Följande kommando hämtar endast diskanvändningen av dirTwo -katalogen, som är en katalog inom sökvägen. Kommandot är:

av -h --utesluta=/Hem/john/säga/dirTwo/ * /Hem/john/säga/dirTwo

Argumentet har alla föregående kataloger ner till den i fråga. Värdet av att utesluta har alla föregående kataloger, som slutar med *, strax efter den aktuella. * betyder alla underkataloger på den nivån (och deras underträd). Resultatet blir ungefär,

5.0K/Hem/john/säga/dirTwo

Slutsats

Att försöka veta storleken på en katalog med kommandot ls -s är vilseledande. Med det erhålls endast metadata från katalogen. För att känna till diskanvändningen i en katalog bör du -kommandot användas. När de används med alternativet -h är storleken på katalogerna läsbara. Den skenbara storleken kan erhållas med alternativet skenbar storlek. Utan något alternativ och argument visar du -kommandot bara storleken på alla underkataloger i den aktuella katalogen, inklusive den för den aktuella katalogen. Argumentet till du är vägen, som kan börja från roten. Alternativ och några av deras värden avgör exakt vilka kataloger som adresseras. Kommandot sudo ger de vanliga användarens superanvändarprivilegier som standard.