cla*_*rkk 14 linux hard-disk disk
如何获取所有磁盘的列表,像这样?
/dev/sda
/dev/sdb
Run Code Online (Sandbox Code Playgroud)
ste*_*eve 16
# ls /dev/sd*
/dev/sda /dev/sda1
Run Code Online (Sandbox Code Playgroud)
# ls /dev/sd*[a-z]
/dev/sda
Run Code Online (Sandbox Code Playgroud)
# fdisk -l 2>/dev/null |awk '/^Disk \//{print substr($2,0,length($2)-1)}'
/dev/xvda
Run Code Online (Sandbox Code Playgroud)
res*_*esc 12
您可以使用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
..
Run Code Online (Sandbox Code Playgroud)
如果只想列出已安装的磁盘,则可以使用 grep 过滤输出,例如
$ df | grep '^/dev'
/dev/sda1 230467740 37314752 181422812 18% /
/dev/sdb1 961303548 130106540 782342500 15% /media/Data
Run Code Online (Sandbox Code Playgroud)
匹配以/dev
,开头的行,或者,如果您只想要名称
df | grep -o '^/dev[^ ]*'
/dev/sda1
/dev/sdb1
Run Code Online (Sandbox Code Playgroud)
它将匹配从/dev
第一个空格字符开始的字符串,并仅输出匹配项(选项-o, --only-matching
),
编辑
以上将列出所有分区,如果您需要列出磁盘,请lsblk
改用,并带有以下选项(模式匹配如上)
$ lsblk -dp | grep -o '^/dev[^ ]*'
/dev/sda
/dev/sdb
Run Code Online (Sandbox Code Playgroud)
-d
只列出设备,没有分区-p
输出整个路径编辑 2
正如下面所指出的,lsblk -dpno name
将给出相同的结果,不需要grep
.