Как Узнать Свободное Место на Диске в 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