
如何取得所有磁碟的列表,像這樣?
/dev/sda
/dev/sdb
答案1
ls (但顯示各個分區)
# ls /dev/sd*
/dev/sda /dev/sda1
ls(僅磁碟,忽略分割區)
# ls /dev/sd*[a-z]
/dev/sda
軟碟
# fdisk -l 2>/dev/null |awk '/^Disk \//{print substr($2,0,length($2)-1)}'
/dev/xvda
答案2
您可以使用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
。