Как да получите размера на директория в Linux

How Get Size Directory Linux



Познаването на размера на директория в Linux не е толкова просто, колкото звучи. Командата ls -s ще изброи файловете и поддиректориите с техните размери. Размерите (около 4096 байта), дадени за директориите, не са използване на диск. Размерът, който се вижда за директория, е размерът на метаданните на директорията.

Метаданните са данни за данни. Привидният размер е размерът на данните, които имат значение за обикновения потребител на компютъра. Съдържанието (текстът) на писмата, изображенията, видеоклиповете и т.н. на потребителя представляват видимия размер. Тези данни не се съхраняват произволно в компютъра. Данните с явен размер трябва да се съхраняват по контролен начин. Тя трябва да бъде разпознаваема. Тя трябва да бъде пълна. Има и други изисквания към него. За да се постигнат тези допълнителни изисквания, са необходими някои допълнителни данни и тези допълнителни данни са метаданните.







Не забравяйте, че има само една директория в том. Останалите са поддиректории. Основната директория поражда поддиректории, които водят до падане на други поддиректории. Поддиректориите обаче обикновено се наричат ​​просто директории. И така, има само едно дърво с директории.



Така че, ls -s не е полезно за получаване на размера на директория. Коя команда тогава е полезна? - Командата du. du означава „Използване на диска“. Той отпечатва използването на диска на директорията.



Тази статия обяснява различните функции на командата du в Linux, която предоставя различните начини на програмиста да знае размерите на директориите и техните поддиректории. Bash е обвивката, използвана за примерните кодове на тази статия.





Съдържание на статията

du без опция или аргумент

Текущата работна директория е директорията, в която потребителят работи в момента. Подканата обикновено показва текущата работна директория. Въвеждане на du без опция и аргумент, така:



на

и след това натискането на клавиша Enter ще покаже използването на диска за всички поддиректории на текущата работна директория. Той ще покаже тази информация за поддървото на текущата работна директория. Точка на дисплея представлява текущата работна директория.

Всеки път на поддървото е представен в ред на дисплея. Всеки ред започва с размера на директорията (която е фамилно име в пътя). Дисплеят може да е нещо като:

8./dir1/dir2/dir3/dir4

12./dir1/dir2/dir3

16./dir1/dir2

двайсет./dir1

Забележете, че не е ясно дали размерът е в байтове или килобайти или мегабайти или гигабайти. Килобайта на символ, K означава 1024 байта; Мегабайти на символ, М означава 1 048 576 байта; Гигабайта на символ, G означава 1 073 741 824 байта. За да бъдат посочени кратните, трябва да се използва опцията -h (превключвател), както следва:

на

Тогава дисплеят ще изглежда така:

8.0K./dir1/dir2/dir3/dir4

12K./dir1/dir2/dir3

16K./dir1/dir2

20K./dir1

Когато се използва опцията -h, се казва, че размерите са в четлива форма.

Забележка: с опцията –all, командата du също ще даде използване на диска за файлове; използването на диск за файлове обаче няма да бъде разгледано в тази статия.

Размер на други директории

Типичен абсолютен път за Linux том е следният:

/У дома/Джон/казвам/dirTwo/dirThree/dirFour

Първият / е основната директория. Тази директория има непосредствени поддиректории, включително началната директория. Началната директория има директорията на потребителя. Ако името на потребителя е Джон, той може да посочи директория на потребителя, Джон. Директорията на потребителя се идентифицира с ~. Така че потребителят може да използва командата cd ~, за да достигне директорията си от всяка директория. dirOne е директория, създадена от потребителя. Потребителят може също да създава други директории на това ниво. dirTwo, dirThree и dirFour са поддиректории на предишните им директории, създадени от потребителя.

Потребителят може да знае размера на всяка друга директория и нейните поддиректории (поддърво) от всяка директория, като заобиколи абсолютния път като аргумент. Например, ако е необходимо използване на диск,

/У дома/Джон/казвам/dirTwo

тогава командата ще бъде:

на /У дома/Джон/казвам/dirTwo

или

на ~/казвам/dirTwo

където ~ представлява директорията на потребителя.

За да използва относителен път, потребителят вече трябва да е в съответната родителска директория. Например, ако подканата се показва,

Джон@домакин: ~/кажете $

което означава, че потребителят е в директорията,/home/john/dirOne, тогава следната команда ще даде същия резултат като горната команда:

на dirTwo

Пътищата все още биха били относителни. За да покажете същата информация за текущата директория, не използвайте аргумент или използвайте точката.

Тази схема може да се използва за получаване на размера само на една директория, последната в пътя (предшествана от пътя). Възможно е да получите размера на директория в средата на пътя - вижте exclude = PATTERN по -долу.

Общо

Може да се създаде голям общ размер на всички включени директории. За горната ситуация командата ще бъде:

на --обща сума

видим размер

Привидният размер обикновено е по -малък от използването на диска. В някои ситуации обаче видимият размер е по -голям от използването на диска; причина - вижте по -късно. Командата за получаване на видимите размери за относителния път по -горе би била:

на -видим размерdirTwo

Максимална дълбочина

С –max-дълбочина = 0, du отпечатва размера само на текущата работна директория; с du –max-дълбочина = 1, du отпечатва размера на текущата работна директория и размерите на всички нейни поддиректории от първо ниво; с –max-дълбочина = 2, du отпечатва размера на текущата работна директория и размерите на всички нейни поддиректории от първо ниво, както и на всички поддиректории от второ ниво; с –max-дълбочина = 3, du отпечатва размера на текущата работна директория и всички нейни поддиректории от първо ниво, както и всички поддиректории от второ ниво, както и от всички поддиректории от трето ниво; това продължава с увеличаване на стойността на max-дълбочина. Пример за използването му е:

на -максимална дълбочина=2

Командата sudo

Една от директориите със собствени поддиректории в главната директория е var. Ако потребителят въведе

на /където

и натиска Enter, той ще осъзнае, че разрешението е отказано за някои директории. Тоест, той не може да знае размерите на някои директории. Разрешението се отказва, защото потребителят не е суперпотребител. Суперпотребителят има привилегията да вижда размерите (използването на диска) на тези директории. Така че, за да може потребителят да придобие тази привилегия, той трябва да използва командата sudo, както следва:

sudo на /където

Ако обвивката пита потребителя за неговата парола, той трябва да въведе паролата и да натисне Enter. С командата sudo обикновеният потребител (програмист) може да види размерите на всички директории в директорията var и подобни директории.

Изключване на записи по размер

Опцията –threshold = SIZE няма да позволи списъчни директории, чиито размери са по -малки от SIZE. За пътя,

/У дома/Джон/казвам/dirTwo/dirThree/dirFour

с подкана в[защитен имейл]: ~ $, значи

на -праг= 12K dirOne

където 12K означава 12 килобайта, няма да показва реда за никоя директория, чието използване на диска е по -малко от 12K.

–Изключване = ПАТЪРН

Тази опция и стойност могат да пропуснат редове от директория, които потребителят не иска в списъка.

За да пропуснете реда за последната директория, dirFour от пътя

/У дома/Джон/казвам/dirTwo/dirThree/dirFour

командата трябва да бъде:

на --изключете= кажи/dirTwo/dirThree/dir Четири dirOne

Резултатът ще бъде нещо като,

4.0K dirOne/dirTwo/dirThree

8.0K dirOne/dirTwo

12K dirOne

Забележка: размерите не включват размера на директорията от последното ниво (dirFour) на пътя.

За да имате само размерите на директориите с по-голяма дълбочина и техните поддървета, не включвайте директориите с по-ниска дълбочина в опцията. Така че с командата,

на --изключете= кажи/dirTwo/dirTri dirOne

изходът ще бъде нещо като,

4.0K dirOne/dirTwo

8K dirOne

Забележка: размерите са изключили размерите на директориите на долния лост на дървото.

Помислете отново за абсолютната връзка,

/У дома/Джон/казвам/dirTwo/dirThree/dirFour

Следващата команда ще получи използването на диска само на директорията dirTwo, която е директория в пътя. Командата е:

на --изключете=/У дома/Джон/казвам/dirTwo/ * /У дома/Джон/казвам/dirTwo

Аргументът съдържа всички предходни директории до въпросния. Стойността на изключване има всички предходни директории, завършващи с *, точно след въпросната. * означава всички поддиректории на това ниво (и техните поддървета). Резултатът ще бъде нещо като,

5.0K/У дома/Джон/казвам/dirTwo

Заключение

Опитът да се знае размерът на директория с командата ls -s е подвеждащ. С него се получават само метаданните на директорията. За да знаете използването на диска на директория, трябва да използвате командата du. Когато се използва с опцията -h, размерите на директориите могат да се четат. Привидният размер може да бъде получен с помощта на опцията за видим размер. Без никакви опции и аргументи, командата du показва само размерите на всички поддиректории на текущата директория, включително тази на текущата директория. Аргументът към du е пътят, който може да започне от корена. Опциите и някои от техните стойности решават точно кои директории са адресирани. Командата sudo дава на обикновения потребител привилегии на суперпотребител по подразбиране.