5 альтернатив du Command!

задняя часть Linux Эксплуатация и обслуживание
5 альтернатив du Command!

Автор: Джек Тиан

Источник: Публичный аккаунт «Путешествие Цзе Гэ в ИТ».

ID: Джейк_Интернет

Пожалуйста, свяжитесь с авторизацией для перепечатки (идентификатор WeChat: Hc220088)

Оригинальный адрес:5 альтернатив du Command!

Всем привет, меня зовут Джек.

В предыдущей статье мы представили10 альтернатив Linux, о которых вы не знали!"в основном включает: bat, duf, tldr, htop, looks, exa, fd, ag, axel, pydf и их приложения. Позже я продолжил исследование, нашел несколько хороших альтернатив и обобщил их.

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

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

# du -sh

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

# du -sh * |sort -rh

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

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

1. нкду

ncdu — это простой и быстрый анализатор использования диска, разработанный с использованием языка C и интерфейса ncurses, который можно использовать для просмотра дискового пространства, занимаемого каталогами или файлами в локальных или удаленных системах.

Ubuntu 21.10 установить ncdu:

# sudo apt-get install ncdu

Опции параметра ncdu:

  • -h: справочная информация
  • -q: беззвучный режим, интервал обновления 2 секунды
  • -v: версия для печати
  • -x: та же файловая система
  • -e: включить расширенную информацию
  • -r: только чтение
  • -o FILE: экспорт каталога сканирования в виде файла
  • -f FILE: Импорт каталога сканирования из файла
  • -0,-1,-2: пользовательский интерфейс для использования при сканировании (0=нет, 2=полный ncurses)
  • --si: Используйте префикс с основанием 10 (СИ) вместо основания 2.
  • --exclude PATTERN: исключить файлы, соответствующие ШАБЛОНУ
  • -X, --exclude-from FILE: исключить файлы, соответствующие любому шаблону в файле.
  • -L, --follow-symlinks: следовать символическим ссылкам (исключая каталоги)
  • --exclude-caches: исключить каталоги, содержащие CACHEDIR.TAG.
  • --exclude-kernfs: исключить псевдофайловые системы Linux (procfs, sysfs, cgroups...)
  • --confirm-quit: подтвердить выход
  • --color SCHEME: установка цветовой схемы

Если вы не используете какие-либо параметры параметров, вы можете напрямую выполнить команду в каталоге для анализа.ncdu, подождите, пока ncdu просканирует, появится интерактивный интерфейс терминала.

Вы можете четко видеть размер каждого каталога,使用方向键илиEnterдля входа или выхода из выбранного каталога.

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

image.png

2. Пыль

dust (du + rust = dust) — это бесплатный инструмент du с открытым исходным кодом и более интуитивно понятный, написанный на rust, а также инструмент, предоставляющий типы файлов и метаданные.

Установочная пыль Ubuntu 21.10:

du-dust_0.7.1_amd64.deb — это последняя версия в репозитории GitHub для пыли, загруженная со страницы релизов пыли..debфайл, вы можете выполнить следующие команды, чтобы загрузить и установить его.

wget https://github.com/bootandy/dust/releases/du-dust_0.7.1_amd64.deb
dpkg -i du-dust_0.7.1_amd64.deb

Для других систем вы можете обратиться к другим методам установки пыли на GitHub для установки.

использование пыли:

dust [FLAGS] [OPTIONS] [--] [inputs]...

варианты параметров пыли:

  • -f: "размер" каталога - это количество подфайлов/каталогов, а не размер диска
  • -s: использовать длину файла вместо блоков
  • -p: пути к подкаталогам не укорачиваются
  • -h: справочная информация
  • -i: не показывать скрытые файлы
  • -x: учитывать только файлы и каталоги, находящиеся в той же файловой системе, что и указанный каталог.
  • -b: Процентная полоса или процентное значение отображаться не будут.
  • -c: не будет печатать цвет (обычно самые большие каталоги окрашены)
  • -r: печатать дерево вверх ногами (самое высокое, самое высокое)
  • -t: показать только эти типы файлов
  • -V: информация о версии для печати
  • -d: глубина отображения
  • -e: включать только файлы, соответствующие этому регулярному выражению. Для файлов png: -e ".png$"
  • -X: исключить любой файл или каталог с таким именем.
  • -v: исключить файлы, соответствующие этому регулярному выражению. Игнорировать типы файлов png: -v ".png$"
  • -n: количество отображаемых строк вывода. Это высота (но помогает h) [по умолчанию: 23]
  • -w: Указывает ширину вывода, чтобы переопределить автоматическое определение ширины терминала.

использование пыли:

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

# dust

image.png

-pПараметры могут отображаться в виде полного каталога, начиная с текущего каталога.

# dust -p

image.png

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

# dust /bin /etc

image.png

Показать длину файла:

# dust -s

image.png

Показать только 10 каталогов:

# dust -n 10

image.png

3. дуу

duu — это аббревиатура от Directory Usage Utility.Это инструмент, написанный на Python для просмотра размера указанного каталога.Он имеет кросс-платформенные функции и может использоваться в операционных системах Windows, Linux и MacOS.Это килобайт в килобайтах. , Единицы показывают использование диска каталога.

Установка Ubuntu 21.10:

Перед установкой инструмента duu необходимо убедиться, что в системе установлена ​​среда Python 3. Если ее нет, ее необходимо установить. Если она есть, ее можно игнорировать. Тем не менее, Python 3 в настоящее время доступен в программном обеспечении по умолчанию. репозитории в большинстве дистрибутивов Linux.

v2.22.tar.gz — исходный пакет последней версии в репозитории duu на GitHub, загруженный со страницы релизов duu..tar.gzфайл, вы можете выполнить следующие команды, чтобы загрузить и установить его.

# wget https://github.com/jftuga/duu/archive/refs/tags/v2.22.tar.gz
# tar -zxvf v2.22.tar.gz

После распаковки заходим в папку дуу-2.22 и проверяемduu.pyсуществует ли файл.

# ls | grep duu
duu-2.22
# cd duu-2.22/
# ls
duu.py  LICENSE  README.md

использование дуу:

duu.py [-h] [-b] [-e] [-q] [-s STATUS] [-n] [-N] [-f] [-S] [-H] [-T THREADS] [-x EXCLUDE] [-X REGEXPR] [-o OUTPUT] [dname]

варианты параметров дуу:

  • -h: показать это справочное сообщение и выйти
  • -b: Не печатает сводки или статистику, используется исключительно для сортировки.
  • -e: Расширение сводного файла
  • -q: не отображать один каталог
  • -s: отправить статус обработки в STDERR, количество каталогов на STATUS
  • -n: пропускать каталоги, начинающиеся с "."
  • -N: нет рекурсии
  • -f: отображает количество файлов в каждом каталоге
  • -S: Отображение среднего значения, медианы, режима и статистики файла стандартного отклонения.
  • -H: отображать числа в более удобочитаемом формате.
  • -T: количество одновременных потоков с учетом SAN.
  • -x: разделенный двоеточием список строк без учета регистра для исключения
  • -X: разделенный двоеточием список регулярных выражений без учета регистра, которые необходимо исключить.
  • -o: вывод в файл CSV

Ду использовать:

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

# python3 duu.py

image.png

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

Чтобы просмотреть размер каталога, просто добавьте абсолютный путь к каталогу:

# python3 duu.py /etc/init.d/

image.png

В-четвертых, дискус

diskus также является небольшой и быстрой альтернативой, написанной на Rust.du -shИнструмент с открытым исходным кодом для команд, diskus рассчитает размер всех файлов в текущем каталоге, выполнит командуdiskusэффект иdu -sh,du -sh --bytesэто то же самое.

По словам разработчика репозитория diskus на GitHub, на его 8-ядерном ноутбуке папки среднего размера (15 ГБ, 100 тыс. поскольку все программы завершатся в разумные сроки, не прерывая ваш рабочий процесс, можно сделать вывод, что diskus примерно в десять раз быстрее, чем кэш холодного диска du и кэш горячего диска в три раза больше.

Ниже приведеныкеш холодного дискаа такжекеш горячего дискана основеdiskus,du -sh,sn p -d0 -j8а такжеdust -d0Сравнение результатов командных испытаний.

кеш холодного диска

Command Mean [s] Min [s] Max [s] Relative
diskus 1.746 ± 0.017 1.728 1.770 1.00
du -sh 17.776 ± 0.549 17.139 18.413 10.18
sn p -d0 -j8 18.094 ± 0.566 17.482 18.579 10.36
dust -d0 21.357 ± 0.328 20.974 21.759 12.23

кеш горячего диска

Command Mean [s] Min [s] Max [s] Relative
diskus 500.3 ± 17.3 472.9 530.6 1.00
du -sh 1098.3 ± 10.0 1087.8 1122.4 2.20
sn p -d0 -j8 1122.2 ± 18.2 1107.3 1170.1 2.24
dust -d0 3532.1 ± 26.4 3490.0 3563.1 7.06

Дискус установки Ubuntu 21.10:

diskus_0.7.0_amd64.deb — это последняя версия в репозитории diskus GitHub, загруженная со страницы релизов diskus..debфайл, вы можете выполнить следующие команды, чтобы загрузить и установить его.

# wget https://github.com/sharkdp/diskus/releases/download/v0.7.0/diskus_0.7.0_amd64.deb
# dpkg -i diskus_0.7.0_amd64.deb

Для других систем вы можете обратиться к другим методам установки операционной системы diskus на GitHub для установки.

Использование диска:

diskus [OPTIONS] [path]...

варианты параметров диска:

  • -j: установить количество потоков (по умолчанию: 3 x количество ядер), выходной формат размера файла (десятичный: МБ, двоичный: МиБ) [по умолчанию: десятичный] [возможные значения: десятичный, двоичный]
  • -v: не скрывать ошибки файловой системы
  • -b: вычисляет видимый размер вместо использования диска
  • -h: справочная информация
  • -v:Информация о версии

Дискус использует:

использоватьdu -sh 路径Команда может просмотреть размер каталога, здесь-sПараметр указывает общий размер дисплея.

# du -sh /etc
16M	/etc

При использованииdiskusОбщий размер текущего каталога может отображаться напрямую.

# diskus

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

# diskus /etc
16.66 MB (16,662,528 bytes)

Пять, жесть-лето

tin-summer (sn) — это инструмент с открытым исходным кодом, написанный на языке Rust, а такжеduАльтернатива команде, которую можно использовать для поиска файлов, занимающих место на диске, с лучшим выводом, более чистыми командами и значениями по умолчанию, а благодаря многопоточности она может даже вычислять размер больших каталогов быстрее, чем запускается команда du. tin-summer и du заключается в том, что первая считывает размер файла, а вторая считывает использование диска.

Кроме того, разработчики tin-summer также сделали наглядное сравнение причин использования du и sn.

Причины использовать дю:

  • Доступное для чтения использование диска, а не только размер файла
  • Необязательное разыменование символических ссылок
  • Может быть немного быстрее в небольших каталогах
  • Стабильная и хорошо поддерживаемая

Причины использовать sn:

  • Быстрее в больших каталогах
  • Используйте регулярные выражения для исключения, что делает его намного быстрее, чем du при использовании с флагом --exclude.
  • По умолчанию для читаемого вывода
  • цветной вывод
  • получая лучшую помощь
  • Обеспечивает отсортированный вывод
  • Найти артефакты сборки
  • Чтение размера файла, а не использования диска
  • Расширяемый в Rust

В то же время был также проведен контрольный тест для сравнения результатов времени выполнения sn и du при различных размерах каталогов.

Directory Size Tool Command Time
600MB sn sn p 60.74 ms
600MB sn sn d 99.92 ms
600MB du du -hacd2 88.28 ms
4GB sn sn p 185.2 ms
4GB sn sn d 271.9 ms
4GB du du -hacd2 195.5 ms
700MB sn sn p 91.05 ms
700MB sn sn d 176.3 ms
700MB du du -hacd2 153.8 ms
7MB sn sn p 19.48 ms
7MB sn sn d 12.72 ms
7MB du du -hacd2 10.13 ms

Установить олово-лето:

# curl -LSfs https://japaric.github.io/trust/install.sh | sh -s -- --git vmchale/tin-summer

также можно использоватьcargoустановка менеджера пакетовtin-summer, если в системе установлен Rust. Если Rust уже установлен, выполните следующую команду:

# cargo install tin-summer

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

Использование оловянного лета:

Просмотр размера файла текущего каталога без добавления каких-либо параметров. tin-summer также по умолчанию выводит пользователю в удобном для чтения формате. Вы можете выполнить следующую команду:

# sn f

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

# sn f <path-to-the-directory>

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

# sn ar

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

# sn ar -t200M

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

# sn sort $DIR -n12

На самом деле Sn работает быстрее при работе с большим каталогом и относительно медленно при работе с небольшим каталогом.

Ссылаться на

пыль:GitHub.com/boot Энди/степени…

дуу:github.com/jftuga/duu

дискус:GitHub.com/shark DP/третий…

олово-лето:GitHub.com/VM проверено/in vivo…

наконец

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

Это все на сегодня.

Если вы считаете, что эта статья полезна для вас, пожалуйста,поставить лайк,оставьте сообщениеилиВпередПусть это увидит больше друзей, ведь это будет сильнейшей мотивацией для меня продолжать выпускать больше качественных статей!