Вместо того, чтобы передать его по каналу к sort
, используйте ls.
find . -maxdepth 1 \! -type l -exec ls -d {} +
find . -maxdepth 1 \! -type l | xargs ls -d
При использовании оболочки zsh, Вы могли бы использовать их непортативные расширения шарика:
ls -d *(^@)
control
сам каталог имеет размер 4, и он включен в Вашу первую команду. Второй вариант не вычисляет размер каталога, потому что Вы не передаете его du
, но только его содержание.
Существует также возможность, что у Вас есть скрытые файлы (точечные файлы), которые исключены при расширении *
шарик так, чтобы du
не беспокоится ими.
Во-первых, число не находится в байтах. Единица является или килобайтами или полукилобайтами, в зависимости от Вашей реализации.
Когда Вы работаете du ./control/*
, Вы получаете информацию для файлов, содержавшихся в каталоге control
, но не для каталога control
самостоятельно. Каталоги имеют размер также — информация о файлах, которые они содержат, должен быть сохранен где-нибудь. Размер control
самостоятельно 4 единицы.
ls -l
шоу, что Ваш du
реализация использует единицы 1 КБ.
– Gilles 'SO- stop being evil'
09.12.2013, 12:21