Команда 'ls' показывает размер каталога вместо размера блока

Существует возможность масштабирования рабочего стола до 1: 4 и масштабирования в 1: 0.5. Этот параметр доступен в настройках системы -> Дисплей. Тем не менее, на данный момент это не очень хорошая форма, они сталкиваются с проблемами, когда это разрушает единство.

Так что это рекомендуется, только если его абсолютно необходимые и другие решения не сработают. [!d3 ]

1
задан 21 January 2016 в 20:56

2 ответа

Мне неизвестны какие-либо параметры для команды ls, которые могут это достичь, но можно найти размеры каталогов и файлов в текущем рабочем каталоге с помощью команды du. [!d0 ]

Попробуйте использовать:

du -sh ./*

Должна быть создана функция или скрипт, который дает вам информацию о том, является ли это файлом или каталогом, для которого отображается информация. [!d2 ]

Как заметил муру, опция -d или --max-depth с параметром 1 была бы полезна для перечисления только каталогов. Он также работает вокруг того факта, что скрытые каталоги не перечислены обычным чередованием оболочки (часть ./*).

4
ответ дан 23 May 2018 в 14:07
  • 1
    Вместо ./* используйте -d1: du -hxd1 ., например, чтобы показывать только каталоги – muru 21 January 2016 в 21:13
  • 2
    Что такое x для @muru? В manpage говорится, что он пропускает каталоги на разных файловых системах, но я не уверен, как это применимо? – Arronical 21 January 2016 в 21:28
  • 3
    Это была привычка, извините. Обычно я использую его на /: sudo du -hxd1 /, где полезно пропустить /proc и т. Д. – muru 21 January 2016 в 21:42
  • 4
    Полезно знать, однако, это полезная команда. – Arronical 21 January 2016 в 21:44
  • 5
    @muru: du -hxd1 показывает только dir, а не размер для файлов. – We are Borg 22 January 2016 в 12:04

Анализ вывода ls всегда приводит к горю. См. Это объяснение. Используйте stat (man stat).

из man stat:

NAME
       stat - display file or file system status

SYNOPSIS
       stat [OPTION]... FILE...

DESCRIPTION
       Display file or file system status.
...

       %b     number of blocks allocated (see %B)

       %B     the size in bytes of each block reported by %b
...
       %n     file name

И пример моей системы YMMV:

$ stat --format="%n %b %B" .bashrc $HOME
.bashrc 32 512
/home/w3 192 512
2
ответ дан 23 May 2018 в 14:07
  • 1
    waltinator, в то время как я на 100% согласен с вами и хорошо знаю, что ваш ответ верен, вы должны улучшить свой ответ примерами использования статистики, также включать объяснение или хотя бы указатель на дополнительную информацию об опасностях разбора ls. Кроме того, убедитесь, что stat может фактически отображать размер каталога вместо канонических 4096 байт – Sergiy Kolodyazhnyy 21 January 2016 в 23:55
  • 2
    @serg: Сделал так. благодаря – waltinator 22 January 2016 в 17:46

Другие вопросы по тегам:

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