だから私は基本的にディスクがシステムに追加されていることを確認し、そうであればディスクフォーマットなどのタスクを実行するスクリプトを書いています。
したがって、主な質問は、パーティション(または開発)なしでディスクをどのようにリストしますか?
私はそれらをリストできます:
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