web-dev-qa-db-fra.com

Obtenez une liste simple de tous les disques

Comment obtenir une liste de tous les disques, comme celui-ci?

/dev/sda
/dev/sdb
10
clarkk

ls (affiche cependant les partitions individuelles)

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

ls (juste des disques, ignorer les partitions)

# ls /dev/sd*[a-z]
/dev/sda

fdisk

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

Vous pouvez utiliser df pour répertorier toutes les partitions montées, la commande 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 répertorier uniquement vos disques montés, vous pouvez filtrer 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 ne voulez que les noms

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

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

Modifier

Ce qui précède listera toutes les partitions, si vous devez lister les disques, utilisez à la place lsblk, avec les options suivantes (modèle correspondant comme ci-dessus)

$ lsblk -dp | grep -o '^/dev[^ ]*'
/dev/sda
/dev/sdb
  • -d répertorie uniquement le périphérique, sans partitions
  • -p affiche le chemin entier

Édition 2

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

12
resc