Site icon ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)
Четверг, 19 февраля, 2026

Как найти наиболее часто используемые каталоги и файлы на диске в Linux

Как найти наиболее часто используемые каталоги и файлы на диске в Linux

Как администратор Linux, вы должны периодически проверять, какие файлы и папки занимают больше всего места на диске, потому что очень важно находить ненужный мусор и освобождать от него жесткий диск.

В этой статье вы узнаете, как найти самые большие файлы и каталоги, занимающие дисковое пространство в Linux, используя команды dufind и ncdu с примерами.

 

Найдите самые большие каталоги в Linux с помощью команды du

Выполните следующую команду, чтобы узнать 5 самых больших каталогов в разделе /home .

du -a /home | sort -n -r | head -n 5

 

Если вы хотите отобразить самые большие каталоги в текущей рабочей директории, выполните следующую команду:

du -a | sort -n -r | head -n 5

 

Давайте разберем команду и посмотрим, что означает каждый параметр.

 

Отображение использования дискового пространства в удобном для восприятия формате (МБ, ГБ)

Некоторые из вас хотели бы видеть приведенные выше результаты в удобном для восприятия формате. Например, вы можете отображать самые большие файлы в КБМБ или ГБ.

du -hs * | sort -rh | head -5

 

Приведенная выше команда покажет верхние каталоги, которые занимают больше всего места на диске. Если вы считаете, что некоторые каталоги не так важны, вы можете просто удалить несколько подкаталогов или всю папку, чтобы освободить место.

 

Найдите корневые каталоги и подкаталоги по размеру

Чтобы отобразить самые большие папки/файлы, включая подкаталоги, выполните следующую команду:

du -Sh | sort -rh | head -5

 

Узнайте значение каждого параметра с помощью приведенной выше команды:

 

Найдите самые большие файлы в Linux с помощью команды find

Если вы хотите отобразить только файлы самого большого размера, выполните следующую команду:

find -type f -exec du -Sh {} + | sort -rh | head -n 5

 

Чтобы найти самые большие файлы в определенной папке, просто укажите путь после команды find:

find /home/andreyex/Downloads/ -type f -exec du -Sh {} + | sort -rh | head -n 5

 

или

find /home/andreyex/Downloads/ -type f -printf "%s %p\n" | sort -rn | head -n 5

 

Приведенная выше команда выведет самый большой файл из каталога /home/tecmint/Downloads.

 

Как найти файлы размером больше определенного значения в Linux

Иногда вам не нужно просматривать все файлы в порядке убывания размера, а нужно просто найти файлы, размер которых превышает определенное значение, например файлы размером более 100 МБ или 1 ГБ.

find /home -type f -size +100M -exec ls -lh {} \; | awk '{ print $9 ": " $5 }'

 

Чтобы найти файлы размером более 1 ГБ:

find /home -type f -size +1G -exec ls -lh {} \; | awk '{ print $9 ": " $5 }'

 

Вы также можете искать файлы определенного размера, например от 10 до 100 МБ:

find /home -type f -size +10M -size -100M -exec ls -lh {} \; | awk '{ print $9 ": " $5 }'

 

Исключение каталогов из поиска по использованию дискового пространства

При анализе использования дискового пространства можно исключить определенные каталоги, например /proc/sys, или подключенные внешние диски, чтобы получить более точные результаты.

du -h --exclude=/proc --exclude=/sys --exclude=/dev / | sort -rh | head -n 10

 

Чтобы исключить несколько каталогов при использовании команды find:

find /home -type f -not -path "*/node_modules/*" -not -path "*/.cache/*" -exec du -Sh {} + | sort -rh | head -n 10

 

Это особенно полезно при работе с каталогами разработки, где node_modules или папки с кэшем могут искажать результаты.

 

Найдите старые большие файлы, к которым давно не обращались

Чтобы найти большие файлы, к которым давно не обращались (потенциальные кандидаты на архивирование или удаление), объедините параметры размера и времени:

find /home -type f -size +50M -atime +180 -exec ls -lh {} \;

 

Приведенная выше команда находит файлы размером более 50 МБ, к которым не обращались в течение последних 180 дней.

 

Найти большие файлы, измененные более года назад

Чтобы найти большие файлы, измененные более года назад:

find /var/log -type f -size +100M -mtime +365 -exec ls -lh {} \;

 

Просмотр использования дискового пространства по типу файлов (расширению)

Если вы хотите узнать, какие типы файлов занимают больше всего места, вы можете сгруппировать файлы по расширениям:

find /home/andreyex -type f | sed 's/.*\.//' | sort | uniq -c | sort -rn | head -10

 

Найдите общий объем памяти, занимаемый файлами журналов

Чтобы узнать общий объем памяти, занимаемый файлами определенных типов, например всеми .log файлами:

find /var/log -type f -name "*.log" -exec du -ch {} + | grep total$

 

Найдите общий объем памяти, занимаемый видеофайлами

Или найдите общий объем памяти, занимаемый видеофайлами:

find /home/andreyex -type f \( -name "*.mp4" -o -name "*.avi" -o -name "*.mkv" \) -exec du -ch {} + | grep total$

 

Найдите и удалите пустые файлы и каталоги

Пустые файлы и каталоги занимают индексные дескрипторы и засоряют вашу файловую систему. Вот как их найти:

Чтобы найти все пустые файлы:

find /home/andreyex -type f -empty

 

Чтобы найти все пустые каталоги:

find /home/andreyex -type d -empty

 

Если вы хотите удалить все пустые файлы (используйте с осторожностью):

find /home/andreyex -type f -empty -delete

 

Анализ использования дискового пространства с помощью утилиты ncdu

Несмотря на то, что команды du и find обладают широкими возможностями, утилита ncdu (NCurses Disk Usage) предоставляет интерактивный и удобный интерфейс для анализа использования дискового пространства.

Сначала установите ncdu:

sudo yum install ncdu [в RHEL/CentOS/Fedora]
sudo apt install ncdu [в Debian/Ubuntu]

 

Затем запустите его в любом каталоге:

ncdu /home

 

Утилита ncdu позволяет перемещаться по каталогам с помощью клавиш со стрелками, удалять файлы с помощью клавиши 'd' и получать визуальное представление об использовании диска. Она особенно полезна, когда нужно быстро найти и освободить место в интерактивном режиме.

 

Как найти недавно созданные большие файлы в Linux

Чтобы найти недавно созданные большие файлы (это поможет определить, что занимает место на диске):

find /home -type f -size +50M -ctime -7 -exec ls -lh {} \;

 

Эта команда находит файлы размером более 50 МБ, созданные за последние 7 дней.

При использовании команды find с параметром -size помните о следующих единицах измерения:

 

Пример-size +500M находит файлы размером более 500 мегабайт.

 

На этом пока всё. Найти самые большие файлы и папки несложно. С этим легко справится даже начинающий администратор. Если вам понравился этот урок, поделитесь им в своих социальных сетях и поддержите andreyex.

Exit mobile version