общее количество в выводе команды ls -l

Я предпочитаю другое решение:

touch.runcmd; while [ -f ".runcmd" ]; do COMMAND; sleep 1; done

Чтобы закрыть цикл, просто выполните:

rm.runcmd && kill `pidof COMMAND`
1
04.10.2019, 23:23
1 ответ

ls -l с или без -hпоказывает только (видимый )размер файлов для каждого из них, а не использование ими дискового пространства.

Чтобы увидеть использование дискового пространства, используйте ls -s. Тогда сумма должна совпадать.

Обратите внимание, что эта сумма является суммой для перечисленных файлов. Если вы не используете -A, скрытые файлы не будут включены. Если вы используете -a, .и ..будут также включены (, как правило, ). Обратите внимание, что если один и тот же файл дважды появляется в списке (, например, потому что это жесткие ссылки на один и тот же файл ), он будет засчитан дважды.

Размер указывается в единицах по 512 байт в реализациях, совместимых с POSIX -. GNUls(тот, который поставляется с Ubuntu ), вместо этого использует единицы измерения 1024 байта, если в среде нет переменной POSIXLY_CORRECT($LS_BLOCK_SIZE, $BLOCKSIZEили опция --block-sizeтакже может использоваться для указания произвольных единиц ). busybox lsвсегда использует блоки размером 1024 байта.

Пример:

$ truncate -s 15T a
$ echo > b
$ ls -s
total 4
0 a  4 b
$ ls -sl
total 4
0 -rw-rw-r-- 1 me me 16492674416640 Oct  4 21:53 a
4 -rw-rw-r-- 1 me me              1 Oct  4 21:53 b
$ POSIXLY_CORRECT=1 ls -sl
total 8
0 -rw-rw-r-- 1 me me 16492674416640 Oct  4 21:53 a
8 -rw-rw-r-- 1 me me              1 Oct  4 21:53 b
$ LS_BLOCK_SIZE=1 ls -sl
total 4096
   0 -rw-rw-r-- 1 me me 16492674416640 Oct  4 21:53 a
4096 -rw-rw-r-- 1 me me              1 Oct  4 21:53 b
$ LS_BLOCK_SIZE=1 ls -sla
total 1638400
   4096 drwxrwxr-x   2 me me           4096 Oct  4 21:53./
1630208 drwxr-xr-x 312 me me        1626112 Oct  4 21:54../
      0 -rw-rw-r--   1 me me 16492674416640 Oct  4 21:53 a
   4096 -rw-rw-r--   1 me me              1 Oct  4 21:53 b
$ ls -slah
total 1.6M
4.0K drwxrwxr-x   2 me me 4.0K Oct  4 21:53./
1.6M drwxr-xr-x 312 me me 1.6M Oct  4 21:55../
   0 -rw-rw-r--   1 me me  15T Oct  4 21:53 a
4.0K -rw-rw-r--   1 me me    1 Oct  4 21:53 b

Посмотрите, как aимеет размер 15 ТБ, но не занимает места на диске (это разреженный файл ), а bимеет размер в один байт, но занимает 4 КБ на диске (использует один блок файловой системы )].

См. Почему существует так много различных способов измерения использования диска? для дальнейшего чтения.

6
27.01.2020, 23:15

Теги

Похожие вопросы