Что это за "Итого" в самой первой строке после ls-l? [закрытый]
что такое "всего" в выходных данных ls-l?
$ ls -l /etc
total 3344
-rw-r--r-- 1 root root 15276 Oct 5 2004 a2ps.cfg
-rw-r--r-- 1 root root 2562 Oct 5 2004 a2ps-site.cfg
drwxr-xr-x 4 root root 4096 Feb 2 2007 acpi
-rw-r--r-- 1 root root 48 Feb 8 2008 adjtime
drwxr-xr-x 4 root root 4096 Feb 2 2007 alchemist
4 ответов:
вы можете найти определение этой линии в
lsдокументации для вашей платформы. Ибоcoreutilsls(тот, который находится на многих системах Linux), информация может быть найдена черезinfo coreutils ls:для каждого каталога, который указан, предисловие файлы со строкой "всего блоков" , где блоки-это общее распределение диска для всех файлы в этом каталоге.
Формула: что такое это номер?
в общей сумме int = сумме (physical_blocks_in_use) * physical_block_size/ls_block_size) для каждого файла.
где:
ls_block_size- это произвольная переменная окружения (нормально 512 или 1024 байта) которое свободно modifiable с--block-size=<int>флагlsнаPOSIXLY_CORRECT=1GNU окружающая среда переменная (чтобы получить 512-байтовые единицы), или-kфлаг в силу Единицы измерения 1кб.physical_block_size- это зависящее от ОС значение внутреннего блочного интерфейса, который может быть подключен или не подключен к базовому оборудованию. Это значение обычно составляет 512b или 1k, но полностью зависит от ОС. Это может быть выявлено через%Bзначениеstatилиfstat. обратите внимание, что это значение (почти всегда) не связано с количеством физических блоков на A современные запоминающее устройство.почему так запутано?
это число довольно отделено от любой физической или значимой метрики. Многие младшие программисты не имели опыта работы с файл дыры или hard / sym links. Кроме того, документация по этому конкретному вопросу практически отсутствует.
разрозненность и двусмысленность термина "размер блока" результат из многочисленных различных мер легко запутаться, и относительно глубокие уровни абстракции вращаются вокруг доступа к диску.
примеры противоречивой информации:
du(илиls -s) vsstatпод управлением
du *в папке проекта выдает следующее: (Примечание:ls -sвозвращает те же результаты.)dactyl:~/p% du * 2 check.cc 2 check.h 1 DONE 3 Makefile 3 memory.cc 5 memory.h 26 p2 4 p2.cc 2 stack.cc 14 stack.hв общей сумме: 2+2+1+3+3+5+26+4+2+14 = 62 блоки
еще когда один бежит
statмы видим другой набор значений. Работаетstatв том же каталоге дает:dactyl:~/p% stat * --printf="%b\t(%B)\t%n: %s bytes\n" 3 (512) check.cc: 221 bytes 3 (512) check.h: 221 bytes 1 (512) DONE: 0 bytes 5 (512) Makefile: 980 bytes 6 (512) memory.cc: 2069 bytes 10 (512) memory.h: 4219 bytes 51 (512) p2: 24884 bytes 8 (512) p2.cc: 2586 bytes 3 (512) stack.cc: 334 bytes 28 (512) stack.h: 13028 bytesИтого: 3+3+1+5+6+10+51+8+3+28 = 118 блоки
Примечание: вы можете использовать команду
stat * --printf="%b\t(%B)\t%n: %s bytes\n"> чтобы вывести (по порядку) количество блоков, (в паренсе) размер тех блоки, имя файла, размер в байтах, как показано выше.есть два важные вещи на вынос:
statкак сообщаетphysical_blocks_in_useиphysical_block_sizeкак использовано в формуле выше. Обратите внимание, что эти значения основаны на интерфейсах ОС.duобеспечивает то, что принято считать довольно точным оценка использования физического диска.
Для справки -
ls -lвыше каталога:dactyl:~/p% ls -l **total 59** -rw-r--r--. 1 dhs217 grad 221 Oct 16 2013 check.cc -rw-r--r--. 1 dhs217 grad 221 Oct 16 2013 check.h -rw-r--r--. 1 dhs217 grad 0 Oct 16 2013 DONE -rw-r--r--. 1 dhs217 grad 980 Oct 16 2013 Makefile -rw-r--r--. 1 dhs217 grad 2069 Oct 16 2013 memory.cc -rw-r--r--. 1 dhs217 grad 4219 Oct 16 2013 memory.h -rwxr-xr-x. 1 dhs217 grad 24884 Oct 18 2013 p2 -rw-r--r--. 1 dhs217 grad 2586 Oct 16 2013 p2.cc -rw-r--r--. 1 dhs217 grad 334 Oct 16 2013 stack.cc -rw-r--r--. 1 dhs217 grad 13028 Oct 16 2013 stack.h
это общее количество блоков файловой системы, включая косвенные блоки, используемые перечисленными файлами. Если вы запустите
ls -sна тех же файлах и суммировать сообщенные номера вы получите тот же номер.
просто упомянуть - вы можете использовать-h (ls-lh), чтобы преобразовать это в удобочитаемом формате.
Comments