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

Обновлено: 21.11.2024

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

Оглавление

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

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

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

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

  • G-> для гибибайтов
  • M-> для мегабайт
  • K-> для кибибайт
  • b-> для байтов

Например, "-size +4G" заставляет команду find искать файлы размером более 4 ГБ. Здесь знак + означает, что поиск файлов больше или равен N[Type], как в этом случае, -size +4G заставит команду find искать файлы размером более 4 ГБ.

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

Поиск файлов размером более 4 ГБ в Linux

Чтобы найти файлы размером более 4 ГБ, нам нужно передать параметр -size со значением +4 ГБ в команде поиска.

Вывод:

Он рекурсивно искал файлы внутри папки «/usr» и отфильтровывал файлы размером больше или равный 4 ГБ, а затем распечатывал пути к таким файлам.

Предыдущая команда просто напечатала пути к файлам, размер которых превышает 4 ГБ. Если вы хотите напечатать размер вместе с именем файла, используйте эту команду,

Вывод:

Поиск файлов размером более 1 ГБ в Linux

Чтобы найти файлы размером более 1 ГБ, нам нужно передать параметр -size со значением +1 ГБ в команде поиска.

Вывод:

Он рекурсивно искал файлы внутри папки «/usr/» и отфильтровывал файлы размером больше или равный 1 ГБ, а затем распечатывал пути к таким файлам.

Предыдущая команда просто напечатала пути к файлам, размер которых превышает 1 ГБ. Если вы хотите напечатать размер вместе с именем файла, используйте эту команду,

Найти файлы размером более 500 МБ в Linux

Чтобы найти файлы размером более 500 МБ, нам нужно передать параметр -size со значением +500M в команде поиска.

Он будет рекурсивно искать файлы внутри папки «/usr/» и отфильтровывать файлы размером больше или равным 500 МБ, а затем распечатывать пути к каждому такому файлу.

Вывод:

Чтобы напечатать размер файла вместе с путями к файлам размером более 500 МБ, используйте эту команду,

Он будет печатать пути к файлам вместе с размером для файлов размером более 500 МБ.

Вывод:

Найти файлы размером более 100 МБ в Linux

Чтобы найти файлы размером более 100 МБ, нам нужно передать параметр -size со значением +100M в команде поиска.

Он будет рекурсивно искать файлы внутри папки «/usr/» и отфильтровывать файлы размером больше или равным 100 МБ, а затем распечатывать пути к каждому такому файлу. Чтобы распечатать размер файла вместе с путями к файлам размером более 100 МБ, используйте эту команду,

Он распечатает пути к файлам вместе с размером для файлов размером более 100 МБ.

Найти файлы размером более 50 МБ в Linux

Чтобы найти файлы размером более 50 МБ, нам нужно передать параметр -size со значением +50M в команде поиска.

Он будет рекурсивно искать файлы внутри папки «/usr/» и отфильтровывать файлы размером больше или равным 50 МБ, а затем распечатывать пути к каждому такому файлу. Чтобы распечатать размер файла вместе с путями к файлам размером более 50 МБ, используйте эту команду,

Он будет печатать пути к файлам вместе с размером для файлов размером более 50 МБ.

Найти файлы больше 0 байт в Linux

Чтобы найти файлы размером более 0 байт, нам нужно передать параметр -size со значением +0b в команде поиска.

Он будет рекурсивно искать файлы внутри папки «/usr/» и отфильтровывать файлы размером больше или равным 0 байтам, а затем распечатывать пути к каждому такому файлу. Чтобы распечатать размер файла вместе с путями к файлам размером более 0 байт, используйте эту команду,

Он будет печатать пути к файлам вместе с размером для файлов размером более 0 байт.

Похожие сообщения

Linux: найти файлы, измененные за последние N минут

Linux: создайте каталог или папку с помощью команды mkdir

C++: как передать функцию-член класса в pthread_create()?

POSIX: Как получить идентификатор потока pthread в Linux | pthread_self() | pthread_equals()

POSIX: отдельные и присоединяемые потоки | Примеры pthread_join() и pthread_detach()

POSIX : Как создать поток | Пример и руководство pthread_create()

Что такое зомби-процесс?

Создание нового процесса с помощью системного вызова fork()

Идентификация процессов в Linux — руководство и пример

Что такое процесс?

Оставить комментарий Отменить ответ

Этот сайт использует Akismet для уменьшения количества спама. Узнайте, как обрабатываются данные ваших комментариев.

Реклама

Реклама

Последние публикации

Что-то ищу

Учебники по C++/C++11

Условия использования

Условия и политика

Учебники по Python

Избранные сайты

Отказ от ответственности

Условия и политика

Авторское право © 2022 thisPointer

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

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

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

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

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

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

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

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

Большинство из нас установили на свои машины десятки приложений. Со временем многие файлы будут становиться все больше и больше, а место на диске начнет уменьшаться. Поэтому важно знать, какие файлы или каталоги занимают место на диске вашего компьютера. Хорошей новостью является то, что вы можете очень легко найти файлы с самыми большими размерами в определенном каталоге в вашем Ubuntu и sld (аналогичные дистрибутивы Linux) . В этой статье вы узнаете о различных методах определения самых больших файлов в вашей системе:

Команда 1: найти

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

Сначала откройте терминал и введите команду:

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

sudo find / -type f -printf «%s\t%p\n» | сортировать -n | хвост -1

$ find $HOME -type f -printf ‘%s %p\n’ | сортировать - номер | голова -10

Для поиска больших файлов можно использовать дополнительные параметры: параметр -size. Например, следующая команда отобразит все файлы размером более 100 МБ (это не 100 МБ, см. здесь, если вы запутались):

найти / -size +100M -ls

Однако, если вы хотите добавить диапазон минимального и максимального размера, вы можете просто выполнить следующую команду, которая найдет файлы размером от 100 МиБ до 200 МиБ:

найти / -размер +100M -размер -200M -ls

Похоже, это идеальное приложение для поиска:

Наконец, следующая команда также может быть очень уместной здесь:

найти $DIRECTORY -type f -exec ls -s <> \; | сортировать -n | хвост -n 5

При этом будут найдены все файлы в папке $DIRECTORY, которые подвергаются ls -s. Затем результат сортируется в числовом виде с помощью команды сортировки, и, наконец, отображаются последние пять записей.
Подводя итог, приведенная выше команда отобразит 5 самых больших файлов в папке $DIRETORY.

И последнее слово о команде find: например, вы можете искать файлы, которые появились недавно: меньше или равно n дням (-ctime -n) или которые принадлежат определенным пользователям (-user mrlinus).

Команда 2: дю

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

Сначала введите приведенную ниже команду, чтобы переключиться на root:

А затем введите следующую команду:

sudo du -a /home | сортировать -n -r | голова -n 20

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

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

судо-ду-а | сортировать -n -r | голова -n 10

Вот объяснение приведенной выше команды:

команда du: вычисляет использование файлового пространства.

a : показывает все файлы и каталоги.

команда sort: сортирует входной поток текстовых файлов (от входа в канал).

-n : --numeric-sort : сравнение строковых числовых значений.

-r : --reverse : результат сравнения инвертируется.

head : читает предоставленный список и подготавливает его для стандартного вывода.

-n : указывает, сколько строк нужно вернуть. (В нашем случае мы ограничили отображение первыми 10 строками).

Если вы хотите использовать КБ, ГБ, просто введите команду следующим образом:

du -hs * | сортировать -rh | голова -n 10

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

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

ду-Ш | сортировать -rh | голова -n 10

Вот разбивка приведенной выше команды:

du: команда du

-h : размеры будут показаны в удобочитаемом формате (например, 3 МБ).

-S : размер подкаталогов не будет включен.

Сортировка: сортирует входной поток текстовых файлов (от входа в канал).

-r : --reverse : результат сравнения инвертируется.

-h : включено сравнение чисел в удобочитаемом формате (например, 2K, 1G).

head : читает предоставленный список и подготавливает его для стандартного вывода.

-n : указывает, сколько строк нужно вернуть. (В нашем случае мы ограничили отображение первыми 10 строками).

Если вы хотите исключить, например, сообщение об ошибке типа «отказано в доступе», просто добавьте параметр: 2>/dev/null, например:

du -a /* 2>/dev/null | сортировать - номер | голова -n 50

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

du -h -a /dir | grep "2G\b"

Команда 3: ls

Команда ls используется для отображения информации о каталогах и файлах.

Итак, чтобы получить список 5 самых больших файлов в каталоге /bin , введите следующую команду:

ls -lSh /bin | голова -5

Возможно, вам будет интересно прочитать : Как содержать Ubuntu в чистоте?

Использование Baobab (анализатор использования диска)

Ранее известный как Baobab, Disk Usage Analyzer, представляет собой графическую утилиту GNOME для анализа использования диска. Подобно проводнику файлов, Baobab предлагает легко читаемый графический интерфейс с меню, представляющий содержимое диска. Пользователь может сканировать отдельные части файловой системы, будь то отдельная папка, файловая система целиком и даже удаленные каталоги.

Чтобы установить Baobab, введите следующую команду:

sudo apt установить баобаб

Вам может быть интересно прочитать: Как устанавливать и удалять приложения в Ubuntu? Руководство для начинающих

А затем просто вызовите баобаб, чтобы запустить его. Вы увидите окно ниже:

Теперь вы можете выбрать файловую систему для анализа. Ниже вы можете увидеть иерархию папок вместе с информацией о размере, дате изменения…

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

Если вам нравится контент, мы будем признательны за вашу поддержку, купив нам кофе. Большое спасибо за ваш визит и поддержку.

Амин Нади

Амин Нахди, начинающий инженер-программист и компьютерщик по натуре, а также заядлый пользователь Ubuntu и открытого исходного кода. Он интересуется информационными технологиями, особенно экосистемой на основе Linux, а также Windows и MacOS. Он любит делиться знаниями и распространять их среди других прозрачным и ответственным образом.

Вам также может понравиться

Как узнать размер файла или каталога в Linux с помощью команд du и ncdu

У этого поста 5 комментариев

Как вы пропустили ncdu, пожалуй, самый мощный текстовый инструмент в этой категории?

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

Оглавление

Поиск больших файлов в Linux с помощью команды «Найти»

Поскольку мы ищем файлы по всей системе, для этого нам нужны права суперпользователя. Используя «sudo su» или «sudo -s» и введя пароль, мы можем получить статус суперпользователя. Прочтите эту статью, чтобы получить полное руководство по sudo.

Файлы размером более 200 МБ

Попробуем понять команду:

  • find — найти очень мощную команду, которую можно использовать для поиска файлов и каталогов в Linux.
  • ‘/’ — обозначает путь, внутри которого должна работать команда поиска. Здесь косая черта представляет все возможные пути.
  • -xdev — этот параметр ограничивает команду find отслеживанием только в текущей файловой системе.
  • -type f — этот параметр относится к определенному типу объектов, которые мы пытаемся найти. В данном случае это обычные файлы, поэтому используется аргумент -f .
  • -size — обозначает фильтр по размеру.
  • +200M – это означает, что мы фильтруем все файлы размером более 200 МБ.

У нас есть полная статья, посвященная команде find.

Как отсортировать список больших файлов?

Первый этап извлечения файлов размером более 200 МБ прошел успешно. Следующая цель — отсортировать файлы по размеру. Это можно сделать следующим образом:

Отсортированный список больших файлов

В сочетании с предыдущим выводом обновленная команда означает:

  • «|» — символ «вертикальная черта» используется для передачи вывода предыдущей команды следующей.
  • xargs — большие файлы, переданные командой find, передаются в качестве аргументов следующей команде с помощью xargs .
  • du — эта команда используется для определения использования диска файлами и каталогами. Подробнее о ду.
  • sort — как следует из названия, сортирует заданные данные.
  • -k 1 — указывает команде сортировки сортировать ввод на основе первого столбца.
  • -rh — сортирует данные в обратном (по убыванию) формате, удобном для чтения.

Запись больших каталогов

Чтобы отобразить 10 самых больших каталогов в системе Linux, мы можем использовать:

10 крупнейших каталогов

Объяснение приведенной выше команды:

  • du — команда для вывода списка использования диска каталогами. Подробнее о командовании.
  • ‘/’ — указывает команде вывести список всех возможных путей в Linux.
  • 2>/dev/null — если мы попытаемся запустить команду без этой части, мы получим правильный вывод. Но вместе с этим мы получим некоторые сообщения об ошибках, касающихся отказа в доступе к некоторым файловым системам. Чтобы вывести эти сообщения об ошибках из стандартного вывода, мы направляем их (используя > ) на устройство /dev/null.
  • 'sort -k 1 -rh' — сортировка каталогов по первому столбцу (размеру) в обратном, удобном для человека формате.
  • ‘head -n 10’ — после сортировки мы выбираем 10 элементов сверху с помощью команды head.

Список больших файлов в текущем каталоге

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

Большие файлы в текущем каталоге

'.' после команды find ограничивает команду поиском больших файлов в текущем каталоге.

Как найти бесполезные большие файлы?

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

Большие неизмененные файлы

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

Заключение

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

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

Одной из распространенных проблем при работе в Linux является поиск больших файлов для освобождения места. Предположим, ваша файловая система заполнена и вы получаете предупреждение об удалении пробелов, или если на вашем хосте закончилось место, а ваш сервер не запускается, первое, что вы делаете, это находите первые 10 самых больших файлов и посмотрите, сможете ли вы их удалить. Обычно старые файлы, большие дампы кучи Java являются хорошими кандидатами на удаление и освобождение места. Если вы запускаете приложения Java, такие как основные программы на основе Java или веб-приложения, работающие на Tomcat, вы можете удалить эти файлы дампа кучи и освободить место, но большой вопрос заключается в том, как их найти? Как узнать размер самого большого файла в вашей файловой системе, особенно если вы не знаете, какой это каталог? Мы постараемся найти ответы на некоторые из этих вопросов в этой статье.

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

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

$ найти . -размер +1G

Эта команда напечатает все файлы размером более 1 ГБ из текущего каталога и любого подкаталога.

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

Кстати, если вы новичок в красивом, но огромном мире команд Linux, я настоятельно рекомендую вам пройти комплексный курс Linux, чтобы учиться в структурированном виде. Если вам нужна рекомендация, я настоятельно рекомендую вам присоединиться к мастерству Linux: освоить командную строку Linux в 11,5-часовом курсе на Udemy. Это курс Linux с самой высокой оценкой на Udemy, очень практический и с увлеченным инструктором.

Как найти большие файлы по их размеру в Linux

Вы можете использовать команды find и du, чтобы найти все большие файлы и каталоги, занимающие место на диске. Если ваша файловая система заполнена на 100% или близка к 100%, вам нужно будет найти эти большие файлы и каталоги, чтобы вы могли удалить их, если они не нужны. Как правило, старые файлы журналов и файлы дампа ядра являются хорошими кандидатами на освобождение места на диске.

1. Поиск больших файлов с помощью команды find в Linux

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

здесь %s — размер, а %p — путь.

В качестве альтернативы вы также можете использовать параметр -exec для запуска ls для каждого файла, возвращаемого командой find, для печати его размера, как показано ниже:

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

Кстати, если вы не знакомы с командой find, я предлагаю вам ознакомиться с ее различными параметрами, так как это очень важная и мощная команда. Я предлагаю вам ознакомиться с курсом «Основы интерфейса командной строки Linux» (CLI), чтобы узнать больше о различных параметрах команды find в Linux.

2. Поиск больших файлов с помощью команды du в Linux

Кстати, вы также можете использовать команду du (использование диска), чтобы найти большие каталоги и их размер, как показано ниже:

Это правильная команда, она выводит список как каталогов, так и файлов. Я также объединил вывод команды du с командой sort, чтобы напечатать 10 самых больших файлов и каталогов.

Это именно то, что мы ищем. На самом деле, это также один из часто задаваемых вопросов на собеседованиях по Linux, поэтому, если вы знаете этот трюк, вы также отвечаете на этот вопрос на собеседованиях.

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

Если вы чувствуете, что не знаете достаточного количества команд Linux, вы можете записаться на такой всеобъемлющий курс, как «Основы командной строки Linux», чтобы овладеть наиболее важными командами Linux.


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

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

  • 5 лучших курсов по изучению редактора Vim (онлайн-курсы)
  • Примеры редактора VI и советы для начинающих (примеры vi)
  • 5 Пример команд kill в Unix и Linux (пример)
  • 10 примеров использования команды lsof в Linux? (примеры)
  • Как настроить задания cron в Linux (пример Crontab)
  • 10 примеров сетевых команд в Unix (nslookup)
  • 7 лучших курсов по Linux для инженеров DevOps (курсы по Linux)
  • Как использовать команду netstat, чтобы определить, какой процесс прослушивает порт? (пример)
  • Linux find + du + grep пример (пример)
  • 10 курсов по командной строке Linux для начинающих (курсы)
  • Как работает команда nslookup в UNIX? (ответ)
  • 10 примеров команды curl в Linux (cURL)
  • 10 примеров использования команды chmod в Linux (chmod)

П. С. – Если вы ищете бесплатные онлайн-курсы, чтобы начать знакомство с Linux, посмотрите мой список бесплатных курсов по Linux для программистов, инженеров по облачным вычислениям, специалистов по данным, ИТ-специалистов и системных администраторов.

Читайте также: