Filtrando Dispositivos de Bloco com lsblk
Nesta etapa, aprenderemos como filtrar a saída do comando lsblk para focar em tipos específicos de dispositivos de bloco ou exibir informações em diferentes formatos.
Filtrando por Tipo de Dispositivo
O comando lsblk permite que você filtre dispositivos por seu tipo usando a opção --type ou -t. Os tipos de dispositivo comuns incluem:
disk: Discos físicos
part: Partições
loop: Dispositivos loop
lvm: Volumes Lógicos (Logical Volumes)
Para exibir apenas dispositivos de disco, execute o seguinte comando:
lsblk --type disk
A saída mostrará apenas os discos principais, sem suas partições:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 50G 0 disk
Da mesma forma, para exibir apenas dispositivos de partição, execute:
lsblk --type part
A saída mostrará apenas as partições:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda1 8:1 0 49G 0 part /
sda2 8:2 0 976M 0 part [SWAP]
Exibindo Caminhos de Dispositivos
A opção --paths exibe os caminhos completos dos dispositivos em vez de apenas os nomes dos dispositivos. Isso é útil quando você precisa referenciar os dispositivos em scripts ou comandos.
Execute o seguinte comando:
lsblk --paths
A saída incluirá os caminhos completos dos dispositivos:
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]
A opção --json gera a saída das informações em formato JSON, o que é útil para processamento programático ou ao integrar com outras ferramentas.
Execute o seguinte comando:
lsblk --json
A saída estará em formato 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]"
}
]
}
]
}
Combinando Opções para Controle Preciso
Você pode combinar várias opções para obter exatamente as informações de que precisa. Por exemplo, para exibir apenas dispositivos de disco com seus caminhos completos em formato JSON:
lsblk --type disk --paths --json
A saída será uma representação JSON de apenas os dispositivos de disco com seus caminhos completos:
{
"blockdevices": [
{
"name": "/dev/sda",
"maj:min": "8:0",
"rm": false,
"size": "50G",
"ro": false,
"type": "disk"
}
]
}
Essas opções de filtragem tornam o comando lsblk muito flexível e permitem que você obtenha precisamente as informações de que precisa sobre os dispositivos de bloco no seu sistema.