디스크가 시스템에 추가되었는지 확인

디스크가 시스템에 추가되었는지 확인

그래서 저는 기본적으로 디스크가 시스템에 추가되었는지 확인하고, 그렇다면 디스크 포맷 등의 작업을 수행하는 스크립트를 작성하고 있습니다.

따라서 주요 질문은 파티션(또는 개발) 없이 디스크를 어떻게 나열합니까?입니다.

나는 그것들을 나열할 수 있습니다:

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

관련 정보