ls (mostra partições individuais)
# ls /dev/sd*
/dev/sda /dev/sda1
ls (apenas discos, ignore partições)
# ls /dev/sd*[a-z]
/dev/sda
fdisk
# fdisk -l 2>/dev/null |awk '/^Disk \//{print substr($2,0,length($2)-1)}'
/dev/xvda
Como obter uma lista simples de todos os discos, como este?
/dev/sda
/dev/sdb
Você pode usar df
para listar todas as partições montadas, o comando produzirá 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
..
Se você quiser listar apenas seus discos montados, você pode filtrar a saída com o grep, por exemplo
$ df | grep '^/dev'
/dev/sda1 230467740 37314752 181422812 18% /
/dev/sdb1 961303548 130106540 782342500 15% /media/Data
que coincide com as linhas que começam com /dev
ou, se você quiser apenas os nomes
df | grep -o '^/dev[^ ]*'
/dev/sda1
/dev/sdb1
que corresponderá as strings começando com /dev
até o primeiro caractere de espaço em branco e exibirá apenas a correspondência (opção -o, --only-matching
),
Editar
O acima listará todas as partições, se você precisar listar os discos, use lsblk
, com as seguintes opções (correspondência de padrões como acima)
$ lsblk -dp | grep -o '^/dev[^ ]*'
/dev/sda
/dev/sdb
-d
lista apenas o dispositivo, sem partições -p
gera o caminho completo Editar 2
Como apontado abaixo , lsblk -dpno name
será dê o mesmo resultado, não há necessidade de grep
.