Часто бывает так, что место на диске заканчивается. И для поддержания системы в работоспособном состоянии надо быстро узнать, какие файлы занимают на диске больше всего места, чтобы их, например, удалить. Часто это бывают непомерно разросшиеся файлы логов, если на них не настроена ротация.
Быстро узнать самые большие файлы в системе можно так:
ls -lR | sort -k5 -n
Выполнять ее лучше всего в корне под рутом, чтобы не пропустить все системные подкаталоги. В выводе этой команды самые большие файлы будут располагаться ближе к концу, чтобы не пришлось мотать вверх по буферу консоли (ведь и буфера консоли может не хватить).
В опции -k5 указан столбец, по которому будет сделана сортировка. Если столбец с размером файла в выводе команды ls другой, можно указать его. Счет столбцов идет с единицы.
Недостаток команды: видны имена файлов, но не видны директории, в которых находятся эти файлы. Это в принципе не большая проблема, так как самых больших файлов обычно не более десятка, и даже если непонятно где они находятся, их можно найти по имени и размеру через команду find.
Чтобы были видны имена файлов с полным путем, можно воспользоваться командой:
find . -type f -exec ls -la {} \; | sort -k5 -n
Еще один вариант команды (самый лучший вывод). Рекурсивный поиск файлов самого большого размера в некоторой директории и ее поддиректориях:
find . -type f -printf '%20s %p\n' | sort -n | cut -b22- | tr '\n' '\000' | xargs -0 ls -laSr