Linux поиск самого большого файла

Поиск больших файлов Linux

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

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

Поиск больших файлов Linux

1. GDMap

Несмотря на то, что графических утилит есть около десятка, все они мне не очень нравятся. Например в Gnome можно использовать GDMap, а в KDE — fileslight. Обе утилиты сканируют файловую систему и выводят все файлы в виде диаграммы. Размер блока зависит от размера файла. Чем больше файл или папка, тем больше блок. Для установки GDMap в Ubuntu выполните:

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

2. Утилита ncdu

Это псевдографическая утилита, которая работает в терминале Linux. Она отображает список файлов и директорий по объёму и, что самое интересное, тут же позволяет удалять ненужные файлы. Для установки утилиты выполните:

Затем запустите утилиту, передав ей в качестве параметра папку, которую надо просканировать. Можно проверить ту же домашнюю папку:

У утилиты очень простое управление. Для перемещения по списку используйте кнопки со стрелками вверх и вниз, для открытия папки — клавишу Enter, а для удаления файла — кнопку d. Также можно использовать для перемещения кнопки в Vim стиле — h, j, k, l.

3. Утилита du

Если у вас нет возможности устанавливать новые утилиты, может помочь установленная по умолчанию во всех дистрибутивах утилита du. С помощью следующей команды вы можете вывести 20 самых больших файлов и папок в нужной папке, для примера снова возьмём домашнюю папку:

sudo du -a /home/ | sort -n -r | head -n 20

Мы не можем использовать опцию -h для вывода размера в читабельном формате, потому что тогда не будет работать сортировка.

4. Утилита find

С помощью команды find вы тоже можете искать большие файлы Linux. Для этого используйте опцию -size. Например, давайте найдём файлы, которые больше 500 мегабайтов в той же домашней папке:

Читайте также:  Linux apt get find

sudo find /home -xdev -type f -size +500M

Можно пойти ещё дальше — вывести размер этих файлов и отсортировать их по размеру:

find / -xdev -type f -size +100M -exec du -sh <> ‘;’ | sort -rh

Самые большие файлы Linux будут сверху, а более мелкие — ниже.

Выводы

В этой небольшой статье мы разобрались, как выполняется поиск больших файлов Linux. После того, как вы их нашли, остаётся выбрать ненужные и удалить, если подобное происходит на сервере, то, обычно, это логи различных сервисов или кэш. Обратите внимание, что после удаления файлов место в файловой системе может и не освободится. Для полного освобождения места следует перезагрузить компьютер. Это довольно частая проблема на серверах и VPS.

Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.

Источник

Поиск больших файлов и директорий в Linux

Поиск больших файлов в Linux

Дисковое пространство не вечно. Рано или поздно приходит момент, когда его катастрофически не хватает. Эффективный способ это исправить — найти файлы и директории, которые занимают больше всего места.

Рассмотрим, как это сделать в Linux с использованием команд find и du .

Поиск больших файлов командой find

Простой поиск

Команда find имеет опцию -size , которая позволяет указать размер файлов для поиска.

Найдем файлы, которые занимают больше 1Gb:

find . -mount -type f -size +1G 2>/dev/null
  • Символ точка . после самой команды find, означает, что поиск нужно вести в текущей директории. Вместо точки вы можете указать, например, корневой раздел / или путь до любой другой директории.
  • -mount означает, что в процессе поиска не нужно переходить на другие файловые системы.
  • -type f означает, что мы ищем файлы.
  • -size +1G означает, что нужно найти файлы, размер которых превышает 1Gb. Размер можно указать в различных форматах:
    • b — блоки размером 512 байт. Числом указывается количество блоков.
    • c — в байтах. Например: -size +128с
    • w — в двухбайтовых словах
    • k — в килобайтах
    • M — в мегабайтах
    • G — в гигабайтах

    Команда find

    В результате выполнения команды будет выведен список файлов без какой-либо дополнительной информации.

    Вывод подробной информации

    Добавим в вывод информацию о каждом файле и отсортируем список по размеру. Выполняем команду

    find . -mount -type f -size +512M -print 2>/dev/null | xargs -r -d '\n' ls -lh | sort -k5,5 -h -r

    команда find xargs

    Данная команда состоит из трех частей:

    • Команда find ищет файлы, которые имеют размер больше 512 мегабайт.
    • Результирующий список файлов передается команде xargs , которая, в свою очередь, запускает команду ls -lh над этим списком файлов. В результате получается таблица с файлами и информацией о файлах. Опция -r , команды xarg, используется для того, чтобы не запускать команду ls, если команда find вернула пустой результат (не нашла файлов). Вместо -r можно использовать длинную запись — опцию —no-run-if-empty
      Опция -d ’\n’ используется, чтобы разделять список файлов только по символу новой строки (по \n ). А у нас так и есть — каждый файл на новой строке. Иначе неправильно будут обработаны файлы, в названии которых содержится пробел, так как по умолчанию команда xarg в качестве разделителя использует одновременно пробел, табуляцию или символ новой строки. Примечание: Для BSD-систем вместо -d ’\n’ нужно использовать опцию −0 , а у команды find вместо -print использовать -print0 . Пример: find . -mount -type f -size +512M -print0 2>/dev/null | xargs -0 ls -lh | sort -k5,5 -h -r
    • Затем результат команды ls передается команде sort , которая выполняет сортировку списка (таблицы) по пятой колонке — 5-я колонка содержит размеры файлов.
      Ключ -h означает, что результат нужно вывести в удобно-читаемом виде (human-readable).
      Ключ -r означает, что сортировку нужно выполнять по убыванию (reverse).

    Поиск больших файлов и директорий командой du

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

    Найдем пять самых больших файлов и директорий:

    команда du размеры файлов и директорий

    • Символ . указывает путь и означает текущую директорию. Для поиска в другой директории укажите вместо точки ее путь.
    • Опции -ahx означают:
      a — искать и файлы и директории;
      h — выводить информацию в удобно-читаемом формате;
      x — не выполнять поиск на других файловых системах.
    • sort -rh выполняет сортировку результата.
    • head −5 выводит только пять первых результатов.

    Источник

    Как найти файлы и папки занимающие больше всего места в Linux

    Пользователи компьютеров обычно знают, по какой причине у них заканчивается место на диске — скачено слишком много файлов с помощью Torrent, слишком много фотографий накопилось за последние годы, слишком большой видеоархив с последних событий и так далее. Но иногда ситуации не такие тривиальные — место может закончится на системной диске или на удалённом веб-сервере. В этой статье мы рассмотрим способы, которые позволят найти самые большие папки, которые заняли слишком много места на диске.

    Описанные варианты ориентированы на командную строку — специально чтобы быть применимыми одновременно и для пользователей с настольными компьютерами, и для администраторов веб-серверов.

    1. ncdu для очистки папок

    Программа ncdu является одним из самых удобных вариантов — она просто отлично справляется со своими задачами. У неё Ncurses интерфейс, то есть для обычных пользователей это будет просто очень удобно, а для администраторов, обслуживающих удалённые веб-сервера без графического интерфейса она также подойдёт, поскольку Ncurses не требует графического окружения рабочего стола.

    Программа очень интуитивная и проста в использовании, достаточно запустить её:

    При этом у программы большое количество возможностей и дополнительных функций и оптимизаций, с которыми вы можете познакомиться в статье «ncdu: графический интерфейс du чтобы быстро узнать, какие файлы и папки израсходовали место на диске».

    2. Как с помощью du найти самые большие папки

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

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

    # Для пользователей с американской локалью sudo du -Phx | grep '[0-9\.]\+G' # Для других: sudo du -Phx | grep '[0-9\,]\+G'

    Вместо нужно вписать директорию в системе, например, если мы хотим начать с корневой директории:

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

    Следующая команда делает нечто похожее, но сортирует папки по возрастанию размера и показывает только 10 самые тяжёлые:

    sudo du -Phx | sort -hr | head

    Пример для анализа всей корневой файловой системы:

    sudo du -Phx / | sort -hr | head

    • опция -P говорит не следовать по символическим ссылкам (это может привести к тому, что файлы будут посчитаны дважды)
    • опция -x означает оставаться на одной файловой системе (очень полезно, не будут посчитаны смонтированные диски, а также диски с виртуальной файловой системой)
    • опция -h печатает размер файлов в простом для восприятия человеком формате
    • sudo для повышения привилегий — позволяет команде считать размер всех директорий и не выводить множество ошибок из-за недостатка прав на чтения папок

    Чтобы указать корневую директорию, используйте /, чтобы указать текущую директорию, используйте . (точка). В любой из перечисленных выше команд вы можете указывать определённую папку, чтобы начать сбор информации с неё. Например, когда вы нашли папку с большим размером и хотите узнать больше подробностей о ней, укажите её в одной из команд.

    3. Как найти большие файлы

    Если есть основания думать, что нехватка места на диске заключается в том, что его заняли какие-то большие файлы (например, файлы логов какого-то приложения) а не множество маленьких файлов, то с помощью команды find можно выполнить поиск файлов, размер которого больше определённого, например:

    Эта команда найдёт все файлы, размер которых больше 10 мегабайт.

    В этой команде вместо / (означает искать начиная с корневой директории) вы можете указать любую другую директорию. А вместо +10M вы можете указать любое значение и другой префикс, например вместо M (мегабайты) указать G (гигабайты).

    Источник

Оцените статью
Adblock
detector