Отображение пользователя и папок для использования диска

Я пытаюсь перечислить с серверов, и мне было интересно, возможно ли это сделать с помощью любого терминального кодирования (в котором я сейчас довольно слаб в этом)

Например, в главном каталоге есть тонны подпапок (уровень 2), и в них также есть тонны подпапок (уровень 3 глубоко?)

Поэтому мне было интересно, даст ли мне нормальное кодирование в терминале:

  • какой пользователь занимает больше всего места (уровень 3), при этом отображаются и папки
  • 10 лучших людей, которые занимают больше всего места (уровень 2)

Главный каталог:

|- sub_lvl_2_A
    |- sub_lvl_3_A
|- sub_lvl_2_B
    |- sub_lvl_3_B
    |- sub_lvl_3_C

1 ответ

du Команда рекурсивно находит примерный размер каталогов. Это не будет сортировать вывод по размеру, хотя.

(Вы должны быть пользователем root, чтобы это работало)

На самом деле, вы просто измените аргумент его -d (максимальная глубина) опция:

Чтобы распечатать размер домашнего каталога каждого пользователя в порядке убывания по размеру:

sudo du -d 1 /home | sort -gr

Чтобы напечатать размеры папок в домашнем каталоге каждого пользователя (уровень 3) (предупреждение, это должно быть очень долго, вы можете захотеть передать его в less):

sudo du -d 2 /home

(если вывод длинный):

sudo du -d 2 /home | less

Если вы хотите отсортировать подкаталоги каждого пользователя по размеру, то вам придется запустить du индивидуально для каждого пользователя:

sudo du -d 1 ~user1 | sort -gr
sudo du -d 1 ~user2 | sort -gr

...и так далее.

Если вы хотите работать с другой начальной точки, просто измените последний аргумент du (/home выше) в каталог, из которого вы хотите работать. Изменение аргумента на -d изменит количество пройденных уровней.

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