Метаданните са данни за данни. Привидният размер е размерът на данните, които имат значение за обикновения потребител на компютъра. Съдържанието (текстът) на писмата, изображенията, видеоклиповете и т.н. на потребителя представляват видимия размер. Тези данни не се съхраняват произволно в компютъра. Данните с явен размер трябва да се съхраняват по контролен начин. Тя трябва да бъде разпознаваема. Тя трябва да бъде пълна. Има и други изисквания към него. За да се постигнат тези допълнителни изисквания, са необходими някои допълнителни данни и тези допълнителни данни са метаданните.
Не забравяйте, че има само една директория в том. Останалите са поддиректории. Основната директория поражда поддиректории, които водят до падане на други поддиректории. Поддиректориите обаче обикновено се наричат просто директории. И така, има само едно дърво с директории.
Така че, ls -s не е полезно за получаване на размера на директория. Коя команда тогава е полезна? - Командата du. du означава „Използване на диска“. Той отпечатва използването на диска на директорията.
Тази статия обяснява различните функции на командата du в Linux, която предоставя различните начини на програмиста да знае размерите на директориите и техните поддиректории. Bash е обвивката, използвана за примерните кодове на тази статия.
Съдържание на статията
- du без опция или аргумент
- Размер на други директории
- видим размер
- Командата sudo
- Изключване на записи по размер
- изключва = PATTERN
- Заключение
du без опция или аргумент
Текущата работна директория е директорията, в която потребителят работи в момента. Подканата обикновено показва текущата работна директория. Въвеждане на du без опция и аргумент, така:
на
и след това натискането на клавиша Enter ще покаже използването на диска за всички поддиректории на текущата работна директория. Той ще покаже тази информация за поддървото на текущата работна директория. Точка на дисплея представлява текущата работна директория.
Всеки път на поддървото е представен в ред на дисплея. Всеки ред започва с размера на директорията (която е фамилно име в пътя). Дисплеят може да е нещо като:
8./dir1/dir2/dir3/dir412./dir1/dir2/dir3
16./dir1/dir2
двайсет./dir1
Забележете, че не е ясно дали размерът е в байтове или килобайти или мегабайти или гигабайти. Килобайта на символ, K означава 1024 байта; Мегабайти на символ, М означава 1 048 576 байта; Гигабайта на символ, G означава 1 073 741 824 байта. За да бъдат посочени кратните, трябва да се използва опцията -h (превключвател), както следва:
на -чТогава дисплеят ще изглежда така:
8.0K./dir1/dir2/dir3/dir412K./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/dirThree8.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 дава на обикновения потребител привилегии на суперпотребител по подразбиране.