Obtenir une list simple de tous les disques

Comment get une list simple de tous les disques, comme ça?

/dev/sda /dev/sdb 

ls (montre des partitions individuelles cependant)

 # ls /dev/sd* /dev/sda /dev/sda1 

ls (juste les disques, ignore les partitions)

 # ls /dev/sd*[az] /dev/sda 

fdisk

 # fdisk -l 2>/dev/null |awk '/^Disk \//{print substr($2,0,length($2)-1)}' /dev/xvda 

Vous pouvez utiliser df pour listr toutes les partitions montées, la command affichera quelque chose comme

 $ 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 vous souhaitez listr uniquement vos disques montés, vous pouvez filterr la sortie avec grep, par exemple

 $ df | grep '^/dev' /dev/sda1 230467740 37314752 181422812 18% / /dev/sdb1 961303548 130106540 782342500 15% /media/Data 

qui correspond aux lignes commençant par /dev , ou, si vous voulez seulement les noms

 df | grep -o '^/dev[^ ]*' /dev/sda1 /dev/sdb1 

qui correspondra aux strings commençant par /dev jusqu'au premier caractère d'espace blanc et ne -o, --only-matching que la correspondance (option -o, --only-matching ),

modifier

Le lsblk ci-dessus répertorie toutes les partitions, si vous devez listr les disques, utilisez lsblk place, avec les options suivantes (correspondance de motifs comme ci-dessus)

 $ lsblk -dp | grep -o '^/dev[^ ]*' /dev/sda /dev/sdb 
  • -d ne répertorie que le périphérique, sans partitions
  • -p produit tout le path

Modifier 2

Comme indiqué ci – dessous , le lsblk -dpno name donnera le même résultat, pas besoin de grep .