2010-08-25 7 views
2

Предполагая, что на диске есть только первичные разделы, каков наилучший способ найти текущее количество разделов?Лучший способ извлечь количество разделов?

Есть ли лучший способ, чем:

fdisk -l > temp 
#Following returns first column of the last line of temp e.g. /dev/sda4 
lastPart=$(tail -n 1 temp | awk '{print $1}') 
totalPartitions=$(echo ${lastPart:8}) 

$ totalPartitions переменных иногда возвращает NULL . Вот почему мне было интересно, есть ли более надежный способ найти текущее количество разделов.

ответ

4

насчет:

totalPartitions=$(grep -c 'sda[0-9]' /proc/partitions) 

?

+0

Спасибо. Это более эффективное решение. – baltoro

+0

Обратите внимание, что в то время как большинство UNIX-подобных операционных систем поддерживают procfs, только Linux (afaik) поддерживает информацию, не связанную с процессом (например,/proc/partition). Другими словами, это, вероятно, не удастся, например, FreeBSD. – gamen

+0

Почему-то SO просто сказал мне, что «этот комментарий больше не редактируется», когда я редактировал мой вышеприведенный пост, поэтому я добавляю это вместо него. Daft. Кроме того, (в частности, для Linux), «sdX» будет работать только на достаточно современной системе, поскольку старые ядра Linux различают диски с использованием PATA или SCSI (как вы могли бы помнить, диски PATA традиционно отображались как «hdX»). – gamen

Смежные вопросы