Как Узнать Свободное Место на Диске в Linux / macOS с помощью duf

Как Узнать Свободное Место на Диске в Linux / macOS с помощью duf

 

Получение информации об использовании ваших запоминающих устройств — это постоянная задача любого пользователя настольного компьютера / сервера. duf — это инструмент командной строки, созданный для того, чтобы пользователи Linux, macOS и BSD могли печатать информацию об использовании диска в своей терминальной консоли. Этот инструмент направлен на объединение команд, необходимых для вывода информации об использовании диска, получения информации об индексных дескрипторах, файловой системе, точке монтирования, типе и т. Д. В этой статье вы узнаете, как установить и использовать утилиту duf .

Особенности duf tool

  • Имеет красочный и удобный вывод
  • Вы можете отсортировать результаты в соответствии с вашими потребностями
  • Возможность настройки вывода на ширину вашего терминала
  • Группы и фильтры устройств
  • Вы можете выводить в формате JSON для использования с другими инструментами

Установка duf в Linux

Есть много способов установить утилиту duf на Linux-машину.

 

Установка бинарным методом

Загрузите последний двоичный файл для Linux-машины.

 

curl -s https://api.github.com/repos/muesli/duf/releases/latest | grep browser_download_url | grep linux_x86_64.tar.gz | cut -d '"' -f 4 | wget -i -

Распаковать скачанный архив.

tar xvf duf_*_linux_x86_64.tar.gz

Дайте двоичному файлу исполняемый бит.

chmod a+x duf

Переместите двоичный файл в каталог  /usr/local/bin .

sudo mv duf /usr/local/bin

Проверьте, является ли файл исполняемым:

$ duf
╭───────────────────────────────────────────────────────────────────────────────────────╮
│ 2 local devices                                                                       │
├────────────┬───────┬──────┬───────┬───────────────────────────────┬──────┬────────────┤
│ MOUNTED ON │  SIZE │ USED │ AVAIL │              USE%             │ TYPE │ FILESYSTEM │
├────────────┼───────┼──────┼───────┼───────────────────────────────┼──────┼────────────┤
│ /          │ 37.4G │ 2.9G │ 32.9G │ [#...................]   7.8% │ ext4 │ /dev/sda1  │
│ /boot/efi  │ 60.0M │ 2.5M │ 57.5M │ [....................]   4.2% │ vfat │ /dev/sda15 │
╰────────────┴───────┴──────┴───────┴───────────────────────────────┴──────┴────────────╯
╭───────────────────────────────────────────────────────────────────────────────────────────────────╮
│ 6 special devices                                                                                 │
├────────────────┬────────┬────────┬────────┬───────────────────────────────┬──────────┬────────────┤
│ MOUNTED ON     │   SIZE │   USED │  AVAIL │              USE%             │ TYPE     │ FILESYSTEM │
├────────────────┼────────┼────────┼────────┼───────────────────────────────┼──────────┼────────────┤
│ /dev           │   1.9G │     0B │   1.9G │                               │ devtmpfs │ udev       │
│ /dev/shm       │   1.9G │   8.0K │   1.9G │ [....................]   0.0% │ tmpfs    │ tmpfs      │
│ /run           │ 384.0M │ 832.0K │ 383.2M │ [....................]   0.2% │ tmpfs    │ tmpfs      │
│ /run/lock      │   5.0M │     0B │   5.0M │                               │ tmpfs    │ tmpfs      │
│ /run/user/0    │ 384.0M │     0B │ 384.0M │                               │ tmpfs    │ tmpfs      │
│ /sys/fs/cgroup │   1.9G │     0B │   1.9G │                               │ tmpfs    │ tmpfs      │
╰────────────────┴────────┴────────┴────────┴───────────────────────────────┴──────────┴────────────╯

Установка с помощью пакетов

Установка пакета — альтернативный метод.

Arch Linux / Manjaro:

git clone https://aur.archlinux.org/yay.git
cd yay
makepkg -si
yay -S duf

Ubuntu / Debian:

curl -s https://api.github.com/repos/muesli/duf/releases/latest | grep browser_download_url | grep linux_amd64.deb | cut -d '"' -f 4 | wget -i -
sudo dpkg -i duf_*_linux_amd64.deb

CentOS / RHEL / Fedora:

curl -s https://api.github.com/repos/muesli/duf/releases/latest | grep browser_download_url | grep linux_amd64.rpm | cut -d '"' -f 4 | wget -i -
sudo rpm -Uvh duf_*_linux_amd64.rpm

Установка duf на macOS

Для пользователей macOS установка может быть выполнена с помощью Homebrew или MacPorts.

Но вам нужно будет установить Homebrew или MacPorts в зависимости от метода, который вы хотите использовать.

### Install Homebrew on macOS ###
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"

Вы можете проверить руководство по установке MacPorts, чтобы узнать, как выполнить действия. Следующие команды используются для установки duf на macOS с помощью brew.

$ brew install muesli/tap/duf
==> Tapping muesli/tap
Cloning into '/usr/local/Homebrew/Library/Taps/muesli/homebrew-tap'...
remote: Enumerating objects: 21, done.
remote: Counting objects: 100% (21/21), done.
remote: Compressing objects: 100% (19/19), done.
remote: Total 21 (delta 7), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (21/21), done.
Tapped 4 formulae (48 files, 31.6KB).
==> Installing duf from muesli/tap
==> Downloading https://github.com/muesli/duf/releases/download/v0.3.1/duf_0.3.1_Darwin_x86_64.tar.gz
==> Downloading from https://github-production-release-asset-2e65be.s3.amazonaws.com/297165998/52bd4f80-ffc5-11ea-9431-de9ad9d69000?X-Amz-Algorithm=AWS4-HMAC-SHA2
######################################################################## 100.0%
🍺  /usr/local/Cellar/duf/0.3.1: 5 files, 2.5MB, built in 4 seconds

Вот какие команды вы будете использовать для установки с помощью MacPorts.

$ sudo port selfupdate
$ sudo port install duf

Использование команды duf для проверки использования диска в Linux | macOS

Основное использование команды:

$ duf
╭─────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ 4 local devices                                                                                         │
├────────────────────────┬────────┬────────┬────────┬───────────────────────────────┬──────┬──────────────┤
│ MOUNTED ON             │   SIZE │   USED │  AVAIL │              USE%             │ TYPE │ FILESYSTEM   │
├────────────────────────┼────────┼────────┼────────┼───────────────────────────────┼──────┼──────────────┤
│ /                      │ 931.5G │  10.5G │ 391.7G │ [....................]   1.1% │ apfs │ /dev/disk1s1 │
│ /System/Volumes/Data   │ 931.5G │ 524.9G │ 391.7G │ [###########.........]  56.3% │ apfs │ /dev/disk1s2 │
│ /Volumes/VMware Fusion │   1.2G │   1.2G │  80.0M │ [##################..]  93.7% │ hfs  │ /dev/disk2s1 │
│ /private/var/vm        │ 931.5G │   3.7G │ 391.7G │ [....................]   0.4% │ apfs │ /dev/disk1s5 │
╰────────────────────────┴────────┴────────┴────────┴───────────────────────────────┴──────┴──────────────╯
╭───────────────────────────────────────────────────────────────────────────────────────────╮
│ 1 special device                                                                          │
├────────────┬────────┬────────┬───────┬───────────────────────────────┬───────┬────────────┤
│ MOUNTED ON │   SIZE │   USED │ AVAIL │              USE%             │ TYPE  │ FILESYSTEM │
├────────────┼────────┼────────┼───────┼───────────────────────────────┼───────┼────────────┤
│ /dev       │ 347.5K │ 347.5K │    0B │ [####################] 100.0% │ devfs │ devfs      │
╰────────────┴────────┴────────┴───────┴───────────────────────────────┴───────┴────────────╯

Отобразить вывод, отсортированный по размеру.

$ duf --sort size

╭─────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ 4 local devices                                                                                         │
├────────────────────────┬────────┬────────┬────────┬───────────────────────────────┬──────┬──────────────┤
│ MOUNTED ON             │   SIZE │   USED │  AVAIL │              USE%             │ TYPE │ FILESYSTEM   │
├────────────────────────┼────────┼────────┼────────┼───────────────────────────────┼──────┼──────────────┤
│ /Volumes/VMware Fusion │   1.2G │   1.2G │  80.0M │ [##################..]  93.7% │ hfs  │ /dev/disk2s1 │
│ /                      │ 931.5G │  10.5G │ 391.7G │ [....................]   1.1% │ apfs │ /dev/disk1s1 │
│ /System/Volumes/Data   │ 931.5G │ 524.9G │ 391.7G │ [###########.........]  56.3% │ apfs │ /dev/disk1s2 │
│ /private/var/vm        │ 931.5G │   3.7G │ 391.7G │ [....................]   0.4% │ apfs │ /dev/disk1s5 │
╰────────────────────────┴────────┴────────┴────────┴───────────────────────────────┴──────┴──────────────╯
╭───────────────────────────────────────────────────────────────────────────────────────────╮
│ 1 special device                                                                          │
├────────────┬────────┬────────┬───────┬───────────────────────────────┬───────┬────────────┤
│ MOUNTED ON │   SIZE │   USED │ AVAIL │              USE%             │ TYPE  │ FILESYSTEM │
├────────────┼────────┼────────┼───────┼───────────────────────────────┼───────┼────────────┤
│ /dev       │ 347.5K │ 347.5K │    0B │ [####################] 100.0% │ devfs │ devfs      │
╰────────────┴────────┴────────┴───────┴───────────────────────────────┴───────┴────────────╯

Вывести информацию об индексах вместо использования блока:

$ duf --inodes
╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ 4 local devices                                                                                                  │
├────────────────────────┬────────────┬─────────┬────────────┬───────────────────────────────┬──────┬──────────────┤
│ MOUNTED ON             │     INODES │    USED │      AVAIL │              USE%             │ TYPE │ FILESYSTEM   │
├────────────────────────┼────────────┼─────────┼────────────┼───────────────────────────────┼──────┼──────────────┤
│ /                      │ 9767978160 │  488397 │ 9767489763 │ [....................]   0.0% │ apfs │ /dev/disk1s1 │
│ /System/Volumes/Data   │ 9767978160 │ 1942488 │ 9766035672 │ [....................]   0.0% │ apfs │ /dev/disk1s2 │
│ /Volumes/VMware Fusion │ 4294967279 │    4529 │ 4294962750 │ [....................]   0.0% │ hfs  │ /dev/disk2s1 │
│ /private/var/vm        │ 9767978160 │       3 │ 9767978157 │ [....................]   0.0% │ apfs │ /dev/disk1s5 │
╰────────────────────────┴────────────┴─────────┴────────────┴───────────────────────────────┴──────┴──────────────╯
╭─────────────────────────────────────────────────────────────────────────────────────────╮
│ 1 special device                                                                        │
├────────────┬────────┬──────┬───────┬───────────────────────────────┬───────┬────────────┤
│ MOUNTED ON │ INODES │ USED │ AVAIL │              USE%             │ TYPE  │ FILESYSTEM │
├────────────┼────────┼──────┼───────┼───────────────────────────────┼───────┼────────────┤
│ /dev       │   1215 │ 1215 │     0 │ [####################] 100.0% │ devfs │ devfs      │
╰────────────┴────────┴──────┴───────┴───────────────────────────────┴───────┴────────────╯

Перечислите все (включая псевдо, дубликаты, недоступные файловые системы):

$ duf --all
╭─────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ 4 local devices                                                                                         │
├────────────────────────┬────────┬────────┬────────┬───────────────────────────────┬──────┬──────────────┤
│ MOUNTED ON             │   SIZE │   USED │  AVAIL │              USE%             │ TYPE │ FILESYSTEM   │
├────────────────────────┼────────┼────────┼────────┼───────────────────────────────┼──────┼──────────────┤
│ /                      │ 931.5G │  10.5G │ 391.7G │ [....................]   1.1% │ apfs │ /dev/disk1s1 │
│ /System/Volumes/Data   │ 931.5G │ 524.9G │ 391.7G │ [###########.........]  56.3% │ apfs │ /dev/disk1s2 │
│ /Volumes/VMware Fusion │   1.2G │   1.2G │  80.0M │ [##################..]  93.7% │ hfs  │ /dev/disk2s1 │
│ /private/var/vm        │ 931.5G │   3.7G │ 391.7G │ [....................]   0.4% │ apfs │ /dev/disk1s5 │
╰────────────────────────┴────────┴────────┴────────┴───────────────────────────────┴──────┴──────────────╯
╭───────────────────────────────────────────────────────────────────────────────────────────╮
│ 1 special device                                                                          │
├────────────┬────────┬────────┬───────┬───────────────────────────────┬───────┬────────────┤
│ MOUNTED ON │   SIZE │   USED │ AVAIL │              USE%             │ TYPE  │ FILESYSTEM │
├────────────┼────────┼────────┼───────┼───────────────────────────────┼───────┼────────────┤
│ /dev       │ 347.5K │ 347.5K │    0B │ [####################] 100.0% │ devfs │ devfs      │
╰────────────┴────────┴────────┴───────┴───────────────────────────────┴───────┴────────────╯

Сортировать по использованной емкости.

$ duf --sort used

╭─────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ 4 local devices                                                                                         │
├────────────────────────┬────────┬────────┬────────┬───────────────────────────────┬──────┬──────────────┤
│ MOUNTED ON             │   SIZE │   USED │  AVAIL │              USE%             │ TYPE │ FILESYSTEM   │
├────────────────────────┼────────┼────────┼────────┼───────────────────────────────┼──────┼──────────────┤
│ /Volumes/VMware Fusion │   1.2G │   1.2G │  80.0M │ [##################..]  93.7% │ hfs  │ /dev/disk2s1 │
│ /private/var/vm        │ 931.5G │   3.7G │ 391.7G │ [....................]   0.4% │ apfs │ /dev/disk1s5 │
│ /                      │ 931.5G │  10.5G │ 391.7G │ [....................]   1.1% │ apfs │ /dev/disk1s1 │
│ /System/Volumes/Data   │ 931.5G │ 524.9G │ 391.7G │ [###########.........]  56.3% │ apfs │ /dev/disk1s2 │
╰────────────────────────┴────────┴────────┴────────┴───────────────────────────────┴──────┴──────────────╯
╭───────────────────────────────────────────────────────────────────────────────────────────╮
│ 1 special device                                                                          │
├────────────┬────────┬────────┬───────┬───────────────────────────────┬───────┬────────────┤
│ MOUNTED ON │   SIZE │   USED │ AVAIL │              USE%             │ TYPE  │ FILESYSTEM │
├────────────┼────────┼────────┼───────┼───────────────────────────────┼───────┼────────────┤
│ /dev       │ 347.5K │ 347.5K │    0B │ [####################] 100.0% │ devfs │ devfs      │
╰────────────┴────────┴────────┴───────┴───────────────────────────────┴───────┴────────────╯

Допустимые ключи для сортировки:

  • size
  • used
  • avail
  • usage
  • inodes
  • inodes_used
  • inodes_avail
  • inodes_usage
  • type
  • filesystem
  • mountpoint

Вот еще один пример с некоторыми столбцами, скрытыми в выводе:

$ duf --output mountpoint,size,usage,avail
╭──────────────────────────────────────────────────────────────────────────╮
│ 4 local devices                                                          │
├────────────────────────┬────────┬────────┬───────────────────────────────┤
│ MOUNTED ON             │   SIZE │  AVAIL │              USE%             │
├────────────────────────┼────────┼────────┼───────────────────────────────┤
│ /                      │ 931.5G │ 391.7G │ [....................]   1.1% │
│ /System/Volumes/Data   │ 931.5G │ 391.7G │ [###########.........]  56.3% │
│ /Volumes/VMware Fusion │   1.2G │  80.0M │ [##################..]  93.7% │
│ /private/var/vm        │ 931.5G │ 391.7G │ [....................]   0.4% │
╰────────────────────────┴────────┴────────┴───────────────────────────────╯
╭─────────────────────────────────────────────────────────────╮
│ 1 special device                                            │
├────────────┬────────┬───────┬───────────────────────────────┤
│ MOUNTED ON │   SIZE │ AVAIL │              USE%             │
├────────────┼────────┼───────┼───────────────────────────────┤
│ /dev       │ 347.5K │    0B │ [####################] 100.0% │
╰────────────┴────────┴───────┴───────────────────────────────╯

Вы также можете распечатать вывод в формате json, используя параметр команды –json .

$ duf --json