Filtrado de dispositivos de bloques con lsblk
En este paso, aprenderemos a filtrar la salida del comando lsblk para enfocarnos en tipos específicos de dispositivos de bloques o mostrar información en diferentes formatos.
Filtrado por tipo de dispositivo
El comando lsblk le permite filtrar dispositivos por su tipo utilizando la opción --type o -t. Los tipos de dispositivos comunes incluyen:
disk: Discos físicos
part: Particiones
loop: Dispositivos loop
lvm: Volúmenes lógicos (Logical volumes)
Para mostrar solo los dispositivos de disco, ejecute el siguiente comando:
lsblk --type disk
La salida mostrará solo los discos principales, sin sus particiones:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 50G 0 disk
De manera similar, para mostrar solo los dispositivos de partición, ejecute:
lsblk --type part
La salida mostrará solo las particiones:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda1 8:1 0 49G 0 part /
sda2 8:2 0 976M 0 part [SWAP]
Visualización de rutas de dispositivos
La opción --paths muestra las rutas completas de los dispositivos en lugar de solo los nombres de los dispositivos. Esto es útil cuando necesita hacer referencia a los dispositivos en scripts o comandos.
Ejecute el siguiente comando:
lsblk --paths
La salida incluirá las rutas completas de los 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]
La opción --json genera la información en formato JSON, lo cual es útil para el procesamiento programático o cuando se integra con otras herramientas.
Ejecute el siguiente comando:
lsblk --json
La salida estará en 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]"
}
]
}
]
}
Combinación de opciones para un control preciso
Puede combinar múltiples opciones para obtener exactamente la información que necesita. Por ejemplo, para mostrar solo los dispositivos de disco con sus rutas completas en formato JSON:
lsblk --type disk --paths --json
La salida será una representación JSON de solo los dispositivos de disco con sus rutas completas:
{
"blockdevices": [
{
"name": "/dev/sda",
"maj:min": "8:0",
"rm": false,
"size": "50G",
"ro": false,
"type": "disk"
}
]
}
Estas opciones de filtrado hacen que el comando lsblk sea muy flexible y le permiten obtener precisamente la información que necesita sobre los dispositivos de bloques en su sistema.