Эффективные способы фильтрации вывода Ubuntu «du» по размеру файла

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

Метод 1: использование параметра «-a» с командой «find».
Пример кода:

$ find /path/to/directory -type f -size +100M -exec du -h {} +

Объяснение:
Эта команда использует команду «найти» для поиска файлов размером более 100 МБ в указанном каталоге. Параметр «-type f» гарантирует, что учитываются только обычные файлы, а параметр «-size +100M» фильтрует файлы размером более 100 МБ. Опция «-exec» выполняет команду «du» для каждого соответствующего файла, отображая их размеры в удобочитаемом формате.

Метод 2: использование команды find с printf и sort
Пример кода:

$ find /path/to/directory -type f -size +1G -printf "%s %p\n" | sort -n

Объяснение:
Эта команда находит файлы размером более 1 ГБ в указанном каталоге. Опция «-printf» печатает размер файла (%s) и путь к файлу (%p) для каждого соответствующего файла. Затем выходные данные передаются на сортировку для числовой сортировки, при которой файлы отображаются в порядке возрастания размера.

Метод 3. Фильтрация вывода du с помощью awk
Пример кода:

$ du -ah /path/to/directory | awk '$1 ~ /[0-9]G/ {print}'

Объяснение:
Эта команда использует «du» для отображения использования диска в указанном каталоге, а опция «-a» обеспечивает отображение всех файлов и каталогов. Затем выходные данные передаются в «awk», который ищет строки, содержащие размеры файлов в гигабайтах (например, 2G, 3G), используя регулярное выражение. Печатаются только эти строки, что обеспечивает эффективную фильтрацию вывода по размеру.

Метод 4: использование команды «ncdu» (использование диска NCurses)
Пример кода:

$ ncdu /path/to/directory

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