Команда Linux для поиска в основном используемого дискового пространства файла. Мне нужно перечислить все файлы в порядке размера
3 ответа
du -k | sort -rn | head -n 50
Куда:
Утилита
du
отображает использование блока файловой системы для каждого аргумента файла и для каждого каталога в файловой иерархии с корнем в каждом аргументе каталога. Если файл не указан, отображается использование блока иерархии с корнем в текущем каталоге.-k
будет отображать количество блоков в блоках по 1024 байта (1 кбайт).sort
не требует пояснений.-r
инвертирует результат сравнений, помещая самое высокое значение в список.-n
сравнивает в соответствии с числовым значением строки.head
показывает только верхниеn
рядов. 50 в этом случае.
Всегда держите что-то подобное в псевдониме:
find / -type f | xargs ls -s | sort -rn | awk '{size=$1/1024; printf("%dMb %s\n", size,$2);}' | head
Ну вот.
Для устройства / и только для этого устройства печатается 500 самых больших файлов с размером в мегабайтах. Опустите "head -n 500", и он напечатает все файлы с размерами, отсортированными по величине в первую очередь.
find / -xdev -type f -printf "%s %h/%f\n" | sort -rn -k1 | head -n 500 | awk '{ print $1/1048576 "MB" " " $2}'