Вот более общий подход. Получите выходные данные du folder и du -h folder в двух разных файлах.
du folder > file1
du -h folder > file2
Ключевой частью является следующее: конкатенация file1 и file2 строка за строкой, с подходящим разделителем. [ ! d1]
paste -d '#' file1 file2 > file3
(предполагается, что # не отображается в file1 и file2)
Теперь соберите file3. Обратите внимание, что это будет сортироваться на основе содержимого file1 и разорвать связи по содержимому file2. Извлеките соответствующий результат, используя cut:
sort -n -k1,7 file3 | cut -d '#' -f 2
Также посмотрите на man sort для других параметров.
Вы также можете сохранить это как псевдоним, для последующего повторного использования. Для этого добавьте следующее внизу ~/.bashrc:
sorted-du () {
paste -d '#' <( du "$1" ) <( du -h "$1" ) | sort -n -k1,7 | cut -d '#' -f 2
}
Затем откройте новый сеанс терминала и выполните свой новый псевдоним:
sorted-du /home