ls (aunque muestra particiones individuales)
# ls /dev/sd*
/dev/sda /dev/sda1
ls (solo discos, ignorar particiones)
# ls /dev/sd*[a-z]
/dev/sda
disco
# fdisk -l 2>/dev/null |awk '/^Disk \//{print substr($2,0,length($2)-1)}'
/dev/xvda
Puedes usar df
para enumerar todas las particiones montadas, el comando generará algo como
$ df
/dev/sda1 230467740 37314652 181422912 18% /
udev 10240 0 10240 0% /dev
tmpfs 5599420 0 5599420 0% /sys/fs/cgroup
/dev/sdb1 961303548 130106540 782342500 15% /media/Data
..
Si desea enumerar solo sus discos montados, puede filtrar la salida con grep, por ejemplo
$ df | grep '^/dev'
/dev/sda1 230467740 37314752 181422812 18% /
/dev/sdb1 961303548 130106540 782342500 15% /media/Data
que coincide con las líneas que comienzan con /dev
, o, si quieres solo los nombres
df | grep -o '^/dev[^ ]*'
/dev/sda1
/dev/sdb1
que coincidirá con las cadenas que comienzan con /dev
hasta el primer carácter de espacio en blanco y generar solo la coincidencia (opción -o, --only-matching
),
Editar
Lo anterior enumerará todas las particiones, si necesita enumerar los discos, use lsblk
en su lugar, con las siguientes opciones (coincidencia de patrón como arriba)
$ lsblk -dp | grep -o '^/dev[^ ]*'
/dev/sda
/dev/sdb
-d
enumera solo el dispositivo, sin particiones-p
genera la ruta completa
Editar 2
Como se indica a continuación, lsblk -dpno name
dará el mismo resultado, sin necesidad de grep
.