Перечислять имена разделов linux только в bash
df на linux перечисляет следующую статистику по разделам.
-bash-4.1 # df Файловая система 1K-блоков Используется Доступно Использовать% Установлено на /dev/sda3 1918217320 1473337340 347440136 81% / tmpfs 32970328 0 32970328 0% /dev/shm /dev/sda1 482214 148534 308781 33% /boot /dev/sdd1 1922860884 1638599284 186585876 90% /disk5 /dev/sdc1 1922858352 1474925416 350257336 81% / диск2 / dev / sdb1 1922858352 1028783752 796399000 57% / disk4
Если я хочу получить список имен разделов, например: "/dev/sda3 /dev/sda1 /dev/sdc1...", как мне это сделать в bash?
8 ответов
Чтобы вывести список всех разделов, определенных для устройства, от имени пользователя root:
lsblk
ИЛИ ЖЕ
fdisk -l
ИЛИ ЖЕ
cat /proc/partitions
А также, как упомянуто @Giedrius Rekasius
fdisk -l / dev / sda | grep '^ / dev' | cut -d '' -f1
df
будут отображаться только смонтированные разделы. Если это то, что вы хотите, чтобы извлечь узлы устройства из df
вывести вас grep
для строк, начинающихся с "/dev" и cut
первый столбец из оставшегося вывода:
df | grep '^/dev' | cut -d' ' -f1
или перечислить их в одну строку, разделенную пробелами:
df | grep '^/dev' | cut -d' ' -f1 | tr '\n' ' '
Если вы хотите получить список разделов, которые не обязательно смонтированы, то от имени root вы можете запустить fdisk -l
и, при необходимости, укажите устройства для сканирования разделов:
fdisk -l [device...]
Если вы не укажете какое-либо устройство, то fdisk будет использовать устройства, упомянутые в /proc/partitions
если этот файл существует.
Fdisk выведет информацию в формате, аналогичном df
поэтому для извлечения узлов устройства вы можете сделать то же самое, что описано для df
:
fdisk -l | grep '^/dev' | cut -d' ' -f1
blkid
отображает только реальные хранилища, подключенные к компьютеру с подключенным или без него.
# sudo blkid | awk '{print substr($1, 0, length($1) - 1)}'
/dev/sda1
/dev/sda2
/dev/sdb1
/dev/sdb2
/dev/sr1
Некоторые идеи...
awk '{print $1}' /proc/mounts
df | awk '{print $1}'
df | cut -f1 -d " "
Другой вариант:
df --type ext2 --type ext3 --type ext4 | tail -n +2 | awk '{ print $1 }' | tr '\n' ' '
--type <filesystem>
позволяет указать, какие файловые системы вас интересуютtail -n +2
начинает печать со второй строки вывода (чтобы строка заголовка не печаталась)awk '{ print $1 }'
напечатает самый левый столбец, который содержит информацию о разделеtr '\n' ' '
будет переводить новые строки в пробелы, чтобы информация находилась в одной строке
Эта команда выведет список всех разделов в системе в форму, которую легко перебрать:
tail -n +3 /proc/partitions | awk '{ print $4 }'