lsblk + 只捕获磁盘

yae*_*ael 2 linux filesystems sfdisk disk lsblk

我只想从lsblk捕获磁盘

如图所示,fd0 也出现了,尽管它不是真正可供使用的磁盘

在这种情况下,我们可以只做lsblk | grep磁盘| grep -v fd0

但也许我们错过了一些其他需要通过grep -v过滤它们的设备

lsblk中可能出现的其他磁盘设备 grep 磁盘而不是真正的磁盘?

lsblk | grep disk 

fd0                2:0    1     4K  0 disk
sda                8:0    0   100G  0 disk
sdb                8:16   0     2G  0 disk /Kol
sdc                8:32   0     2G  0 disk
sdd                8:48   0     2G  0 disk
sde                8:64   0     2G  0 disk
sdf                8:80   0     2G  0 disk


lsblk
NAME             MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
fd0                2:0    1     4K  0 disk
sda                8:0    0   150G  0 disk
??sda1             8:1    0   500M  0 part /boot
??sda2             8:2    0 149.5G  0 part
??vg00-yv_root 253:0    0  19.6G  0 lvm  /
??vg00-yv_swap 253:1    0  15.6G  0 lvm  [SWAP]
??vg00-yv_var  253:2    0   100G  0 lvm  /var
sdb                8:16   0     2G  0 disk /Kol
sdc                8:32   0     2G  0 disk
sdd                8:48   0     2G  0 disk
sde                8:64   0     2G  0 disk
sdf                8:80   0     2G  0 disk
sr0               11:0    1  1024M  0 rom
Run Code Online (Sandbox Code Playgroud)

use*_*274 8

如果您只需要由设备主编号标识为 SCSI 的磁盘8,而不需要设备分区,您可以搜索设备主编号而不是字符串“磁盘”:

lsblk -d | awk '/ 8:/'
Run Code Online (Sandbox Code Playgroud)

其中-d(或--no-deps)选项表示不包括设备分区。

对于相当新的 linux 系统,更简单的

lsblk -I 8 -d
Run Code Online (Sandbox Code Playgroud)

正如用户尼克所指出的那样,应该足够了。

  • `lsblk -I 8 -d` 也能工作。 (3认同)