Ищу серию команд, которые покажут мне самые большие файлы на диске.
command-line
disk-usage
Райан Детцель
источник
источник
Ответы:
Если вам просто нужно найти большие файлы, вы можете использовать
find
эту-size
опцию. Следующая команда выведет список всех файлов размером более 10 МБ ( не путать с 10 МБ ):Если вы хотите найти файлы определенного размера, вы можете объединить их с поиском «размер меньше чем». Следующая команда находит файлы от 10 МБ до 12 МБ:
apt-cache search 'disk usage'
перечисляет некоторые программы, доступные для анализа использования диска. Одно приложение, которое выглядит очень перспективнымgt5
.Из описания пакета:
В разделе «связанные пакеты» gt5 я нашел
ncdu
. Из описания упаковки:источник
-ls
вывода жестко закодирован (см. исходный код для функцийpred_fls
и функций list_file ). Вы можете попытаться аппроксимировать вывод, используя-printf
опцию,find ... -type f -exec ls -ldh {} \; | column -t
Я просто использую комбинацию
du
иsort
.Тогда это случай промыть и повторить . Выберите целевые подкаталоги, которые, по вашему мнению, слишком велики, запустите для них команду, и вы выясните причину проблемы.
Примечание: Я использую
du
«s-x
флаг , чтобы держать вещи ограничивается одной файловой системы (у меня довольно сложный механизм перекрестного монтажа вещей между SSD и RAID5).Примечание 2:
2>/dev/null
перенаправляет любые сообщения об ошибках в забвение. Если они вас не беспокоят, это не обязательно.источник
du
страницы руководства : «Суммируйте использование диска каждым ФАЙЛОМ, рекурсивно для каталогов».Мое любимое решение использует смесь из нескольких хороших ответов.
du
аргументы:-a
для "всех" файлов и каталогов. Оставьте это только для каталогов-BM
вывести размеры в мегабайтах (M) размеров блоков (B)2>/dev/null
- исключить сообщения об отказе в разрешении (спасибо @Oli)sort
аргументы:-n
для "числовой"-r
для «обратного»head
аргументы:-n 50
только для лучших 50 результатов.more
если используете меньшее числоПримечание. Префикс
sudo
должен включать каталоги, к которым у вашей учетной записи нет прав доступа.Пример, показывающий 10 самых больших файлов и каталогов в / var (включая общий итог).
источник
Чтобы отобразить самые большие топ-20 каталогов (рекурсивно) в текущей папке, используйте следующий однострочный:
или (более ориентированный на Unix):
Для 20 самых больших файлов в текущем каталоге (рекурсивно):
или с удобочитаемыми размерами:
Таким образом, эти псевдонимы полезно иметь в ваших файлах rc (каждый раз, когда вам это нужно):
источник
Ответ qbi верен, но он будет очень медленным, когда файлов много, так как он начнет новый процесс ls для каждого элемента.
гораздо более быстрая версия, использующая поиск без порождения дочерних процессов, будет использовать printf для печати размера в байтах (% s) и пути (% p)
find "$directory" -type f -printf "%s - %p\n" | sort -n | tail -n $num_entries
источник
Это похоже на идеальное приложение для
find
:Эта команда найдет все файлы в каталоге
$DIRECTORY
и выполнитls -s
их. Последняя команда печатает выделенный размер файла плюс имя файла. Результат отсортирован по номерам, и показаны последние пять записей. В результате вы увидите 5 самых больших файлов в$DIRETORY
любом подкаталоге. Если вы введете,tail -n 1
вы увидите только самый большой файл.Кроме того, вы можете много поиграть с
find
. Например, вы можете искать файлы, которые моложе n дней (-ctime -n
) или принадлежат специальным пользователям (-user johndoe
).источник
Когда мне нужно освободить больше места на серверах, я использую эту команду. Он находит все файлы, размер которых превышает 50 МБ, и "du -h" составляет лучший список файлов, а "sort -n" после нумерации списка каналов сортируется по размеру файла.
источник
Попробуйте Baobab, он дает вам графический обзор файлов и папок, вы можете увидеть, где находятся настоящие космические свиньи, и удалить их одним щелчком мыши https://help.ubuntu.com/community/Baobab.
источник
Например, чтобы найти все файлы GB, я бы использовал du и grep, хотя другие методы, упомянутые здесь, также кажутся великолепными.
Вы также можете полюбоваться с опцией --except, которую имеет du.
источник
Вы также можете отсортировать файлы по размеру:
Он находит только файлы и выполняет
du -h
для каждого файла, который показывает размер файла. Наконец, мы сортируем выводfind
/du
по первому столбцу (в удобочитаемом формате).Последний напечатанный файл - самый большой.
источник
Вы можете использовать команду, чтобы увидеть самые большие файлы, пропуская каталоги:
Чтобы найти все файлы размером более 100 МБ (это не 100 МБ, см. Здесь, если вы не уверены ):
Команда ниже покажет 5 самых больших файлов в папке
$DIRECTORY
:ИСПОЛЬЗОВАНИЕ
du
: Команда ниже, которая использует du, отображает каталоги с 20 самыми большими размерами в домашней рабочей папке:Теперь для отображения самых больших каталогов / файлов, включая подпапки, выполните:
Использование
ls
:Чтобы получить список 5 самых больших файлов в каталоге / bin, введите команду ниже:
Вы также можете использовать анализатор использования дисков или Baobao, как показано здесь, например.
источник
Отличный, удобный инструмент, на который ссылаются в ответе на подобный вопрос, это
NCurses Disk Usage
инструмент:источник