Вы не сделали ничего плохого: ^ и т. Д.
действительно просит grep печатать только строки
, начинающиеся с и т. Д.
, и в вашем файле нет такой строки,
что объясняет пустой вывод.
Если вместо этого вы хотели искать строки, начинающиеся с / etc
, вам
пришлось бы написать:
grep '^/etc'
Вы можете получить информацию о разделах из / sys
, а именно из / sys / block /
.
Эта функция оболочки может вам помочь ::
print_partitions()
{
local disk="$1"
local part
local template="%-6s %16s %16s %16s\n"
printf "$template" Part. "First sector" "Last sector" "# sectors"
for part in "/sys/block/$disk/"sd*; do
st="$(cat "$part/start")"
sz="$(cat "$part/size")"
end=$((st + sz - 1))
printf "$template" "${part##*/}" "$st" "$end" "$sz"
done
}
Использование:
$ print_partitions sdd
Part. First sector Last sector # sectors
sdd1 2048 2099199 2097152
sdd3 2099200 3907029167 3904929968
Примечание: здесь секторы - это сектора по 512 байт.
Для полного дампа ваших разделов:
for disk in /sys/block/sd*; do
print_partitions "${disk##*/}"
echo
done
Обратите внимание, что вы также могли перезаписать ценную информацию в начале первого раздела, например, суперблок ext, но это еще один вопрос .