Как говорят другие ответы, это не проблема bash.
du
в значительной степени настаивает на том, чтобы рассказать вам о каталогах: если вы указываете на каталог, то с или без -a
он сообщит вам об этом.
Однако, если у вас есть GNU du
, вы можете сказать ему, чтобы он читал список имен файлов, заканчивающихся NUL, из stdin, поэтому вы можете использовать find
чтобы получить список: find ... -print0 | du --files0-from=-
(здесь вам не нужен флаг -a
).(Если у вас нет опции --files0-from
, вы все равно можете относительно эффективно вызывать du
, используя xargs
; см. Документацию xargs
.)
Однако если у вас есть GNU du
,у вас, вероятно, есть GNU find
, в котором -printf
, как описано @ icyrock.com.Просто используйте это.Затем используйте явный sort
.