그래서 저는 기본적으로 디스크가 시스템에 추가되었는지 확인하고, 그렇다면 디스크 포맷 등의 작업을 수행하는 스크립트를 작성하고 있습니다.
따라서 주요 질문은 파티션(또는 개발) 없이 디스크를 어떻게 나열합니까?입니다.
나는 그것들을 나열할 수 있습니다:
fdisk -l | grep -o '/dev/sd[a-z][0-5]'
/dev/sda1
/dev/sda2
/dev/sda5
/dev/sdb1
파티션 없이 디스크를 나열하는 방법은 무엇입니까? 나는 다음과 같은 것을 시도했습니다 :
# fdisk -l | grep -o '/dev/sd[a-z][^0-5]'
/dev/sda:
/dev/sdb:
/dev/sdc:
하지만 여전히 sda 및 sdb와 같은 파티션이 있는 디스크를 얻습니다. sdc
파티션이 없고 시스템에서 사용되지 않는 유일한 파티션을 선택하고 싶습니다 . 내가 이것을 하고 싶은 이유는 그것을 bash 스크립트에 넣을 수 있기 때문입니다.
답변1
지저분한 빠른 루프가 다음을 수행합니다.
#!/bin/bash
# get all disks into an array
disks=($(ls /dev/sd* | grep -v '[0-9]'))
# loop over disks in array
for i in $(echo ${disks[@]}); do
# check if it has a partition
diskcheck=$(ls ${i}* | grep '[0-9]')
# if not, print it
if [ -z "$diskcheck" ]; then
echo $i
fi
done