Фильтрация блочных устройств с помощью lsblk
На этом шаге мы узнаем, как фильтровать вывод команды lsblk, чтобы сосредоточиться на определенных типах блочных устройств или отображать информацию в разных форматах.
Фильтрация по типу устройства
Команда lsblk позволяет фильтровать устройства по их типу, используя опцию --type или -t. Общие типы устройств включают:
disk: Физические диски
part: Разделы
loop: Loop-устройства (циклические устройства)
lvm: Логические тома (Logical volumes)
Чтобы отобразить только дисковые устройства, выполните следующую команду:
lsblk --type disk
Вывод покажет только основные диски, без их разделов:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 50G 0 disk
Аналогично, чтобы отобразить только разделы, выполните:
lsblk --type part
Вывод покажет только разделы:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda1 8:1 0 49G 0 part /
sda2 8:2 0 976M 0 part [SWAP]
Отображение путей к устройствам
Опция --paths отображает полные пути к устройствам, а не только имена устройств. Это полезно, когда вам нужно ссылаться на устройства в скриптах или командах.
Выполните следующую команду:
lsblk --paths
Вывод будет включать полные пути к устройствам:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
/dev/loop0 7:0 0 55.5M 1 loop /snap/core18/2128
/dev/loop1 7:1 0 55.4M 1 loop /snap/core18/2284
/dev/loop2 7:2 0 43.6M 1 loop /snap/snapd/15534
/dev/loop3 7:3 0 61.9M 1 loop /snap/gtk-common-themes/1535
/dev/loop4 7:4 0 31.1M 1 loop /snap/snapd/16292
/dev/sda 8:0 0 50G 0 disk
├─/dev/sda1 8:1 0 49G 0 part /
└─/dev/sda2 8:2 0 976M 0 part [SWAP]
Отображение вывода в формате JSON
Опция --json выводит информацию в формате JSON, что полезно для программной обработки или при интеграции с другими инструментами.
Выполните следующую команду:
lsblk --json
Вывод будет в формате JSON:
{
"blockdevices": [
{
"name": "loop0",
"maj:min": "7:0",
"rm": false,
"size": "55.5M",
"ro": true,
"type": "loop",
"mountpoint": "/snap/core18/2128"
},
{
"name": "loop1",
"maj:min": "7:1",
"rm": false,
"size": "55.4M",
"ro": true,
"type": "loop",
"mountpoint": "/snap/core18/2284"
},
{
"name": "loop2",
"maj:min": "7:2",
"rm": false,
"size": "43.6M",
"ro": true,
"type": "loop",
"mountpoint": "/snap/snapd/15534"
},
{
"name": "loop3",
"maj:min": "7:3",
"rm": false,
"size": "61.9M",
"ro": true,
"type": "loop",
"mountpoint": "/snap/gtk-common-themes/1535"
},
{
"name": "loop4",
"maj:min": "7:4",
"rm": false,
"size": "31.1M",
"ro": true,
"type": "loop",
"mountpoint": "/snap/snapd/16292"
},
{
"name": "sda",
"maj:min": "8:0",
"rm": false,
"size": "50G",
"ro": false,
"type": "disk",
"children": [
{
"name": "sda1",
"maj:min": "8:1",
"rm": false,
"size": "49G",
"ro": false,
"type": "part",
"mountpoint": "/"
},
{
"name": "sda2",
"maj:min": "8:2",
"rm": false,
"size": "976M",
"ro": false,
"type": "part",
"mountpoint": "[SWAP]"
}
]
}
]
}
Комбинирование опций для точного управления
Вы можете комбинировать несколько опций, чтобы получить именно ту информацию, которая вам нужна. Например, чтобы отобразить только дисковые устройства с их полными путями в формате JSON:
lsblk --type disk --paths --json
Вывод будет представлением в формате JSON только дисковых устройств с их полными путями:
{
"blockdevices": [
{
"name": "/dev/sda",
"maj:min": "8:0",
"rm": false,
"size": "50G",
"ro": false,
"type": "disk"
}
]
}
Эти опции фильтрации делают команду lsblk очень гибкой и позволяют вам получить именно ту информацию, которая вам нужна о блочных устройствах в вашей системе.