Obtenha uma lista simples de todos os discos [duplicados]

9

Como obter uma lista simples de todos os discos, como este?

/dev/sda
/dev/sdb
    
por clarkk 22.04.2017 / 11:22

2 respostas

12

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
    
por 22.04.2017 / 11:34
7

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 .

    
por 22.04.2017 / 11:45