このように、すべてのディスクのリストを取得するにはどうすればよいですか?
/dev/sda
/dev/sdb
# ls /dev/sd*
/dev/sda /dev/sda1
# ls /dev/sd*[a-z]
/dev/sda
# fdisk -l 2>/dev/null |awk '/^Disk \//{print substr($2,0,length($2)-1)}'
/dev/xvda
df
を使用して、マウントされたすべてのパーティションを一覧表示できます。コマンドは次のように出力されます
$ df
/dev/sda1 230467740 37314652 181422912 18% /
udev 10240 0 10240 0% /dev
tmpfs 5599420 0 5599420 0% /sys/fs/cgroup
/dev/sdb1 961303548 130106540 782342500 15% /media/Data
..
マウントされたディスクのみを一覧表示する場合は、grepを使用して出力をフィルタリングできます。次に例を示します。
$ df | grep '^/dev'
/dev/sda1 230467740 37314752 181422812 18% /
/dev/sdb1 961303548 130106540 782342500 15% /media/Data
/dev
で始まる行に一致するか、名前のみが必要な場合
df | grep -o '^/dev[^ ]*'
/dev/sda1
/dev/sdb1
/dev
で始まり最初の空白文字までの文字列に一致し、一致のみを出力します(オプション-o, --only-matching
)、
編集
上記はすべてのパーティションを一覧表示しますが、ディスクを一覧表示する必要がある場合は、代わりにlsblk
を使用し、次のオプションを使用します(上記のパターンマッチング)。
$ lsblk -dp | grep -o '^/dev[^ ]*'
/dev/sda
/dev/sdb
-d
は、パーティションなしでデバイスのみをリストします-p
はパス全体を出力します編集2
下 で指摘したように、lsblk -dpno name
はgrep
を必要とせず、同じ結果になります。