Команда ls: что означает первая строка?


30

Когда я ls -lполучаю это:

calico@A000505:~/Documentos$ ls -l
total 2020
-rwxr-xr-x 1 calico calico    8559 2010-11-16 11:12 a.out
-rwxrw-rw- 1 smt    smt    2050138 2010-10-14 10:40 Java2.pdf
-rwxrw-rw- 1 ocv    ocv        234 2010-11-16 11:11 test.c

Но что означает «общая 2020»? У меня есть только 3 файла, так что это не количество файлов или каталогов, и я думаю, что это не размер. Так что же это?

Ответы:


25

Количество блоков по 1 КБ, используемых файлами в каталоге, не рекурсивно.

Используйте ls -lhдля получения более значимого вывода.


5
Точнее, в большинстве реализаций это общее количество блоков, используемых файлами, включенными в список каталогов (сравните ls -l ~с ls -la ~и ls -lA ~). Размер блока составляет 1 КБ с инструментами GNU, но 512 Б в соответствии с POSIX и большинством других современных реализаций.
Жиль "ТАК - перестань быть злым"

Что делает -h?
Фонд Моника иск

14

что означает «общее» в ls -al

Отличный вопрос, это означает, что вы хотите обратить внимание на детали. Я проиллюстрирую примерами. Под моим домашним каталогом /home/elесть каталог tmpdir с файлами под ним. Я перехожу в этот каталог и делаюls -al

el@angeliqe ~/tmpdir $ ls -al
total 20
drwxrwxr-x 4 el users 4096 Dec 21 11:45 .
drwx--x--x 9 el users 4096 Dec 21 11:45 ..
drwxrwxr-x 2 el users 4096 Dec 21 11:45 dirWithFiles
drwxrwxr-x 2 el users 4096 Dec 21 11:44 emptydir
-rw-rw-r-- 1 el users  182 Dec 21 11:45 myfile.txt

Это говорит «всего 20». Это означает: «tmpdir использует 20 КБ на диске для всех каталогов и файлов».

с опцией -h вы говорите, чтобы она была в удобочитаемой для человека форме:

el@angeliqe ~/tmpdir $ ls -alh
total 20K
drwxrwxr-x 4 el users 4.0K Dec 21 11:45 .
drwx--x--x 9 el users 4.0K Dec 21 11:45 ..
drwxrwxr-x 2 el users 4.0K Dec 21 11:45 dirWithFiles
drwxrwxr-x 2 el users 4.0K Dec 21 11:44 emptydir
-rw-rw-r-- 1 el users  182 Dec 21 11:45 myfile.txt

Интересно отметить, что каталог, в котором нет ничего, также занимает 8 КБ, в моем случае emptydirничего нет, но показывает, что используется 8 КБ.

el@angeliqe ~/tmpdir/emptydir $ ls -al
total 8
drwxrwxr-x 2 el users 4096 Dec 21 11:44 .
drwxrwxr-x 4 el users 4096 Dec 21 11:45 ..

Добавление пустого каталога доказывает, что каталоги занимают 4 КБ:

el@angeliqe ~/tmpdir/emptydir $ ls -alh
total 12K
drwxrwxr-x 3 el users 4.0K Dec 21 11:54 .
drwxrwxr-x 4 el users 4.0K Dec 21 11:45 ..
drwxrwxr-x 2 el users 4.0K Dec 21 11:54 blah

Еще одна команда для расследования du:

el@angeliqe ~/tmpdir/emptydir $ du
4       ./blah
8       .

Также вы можете взглянуть на размеры файлов с определенной глубиной:

el@angeliqe ~ $ du -h --max-depth=1
12K     ./.ssh
4.0K    ./my_recycle_bin
8.0K    ./.vim
13G     ./gnuoctbluehost
24K     ./tmpdir
48K     ./.subversion
152K    ./.cpan
13G     .
el@angeliqe ~ $

5

Никто не упомянул про -sвариант (?). От man ls:

-s, --size print the allocated size of each file, in blocks

.. так что если вы перечислите с, ls -sто вы получите количество блоков для каждого каталога и файла в текущем каталоге. Когда вы подведете итоги, вы получите точно такой же номер, как и в total:верхней части ls -l.

Дополнительно: чтобы получить размер блока, проверьте это .

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.