Linux

lsblk + 只擷取磁碟

  • February 21, 2020

我只想從lsblk擷取磁碟

如圖所示 fd0 也出現了,儘管它不是真正的磁碟使用

在這種情況下,我們可以只做lsblk | grep 磁碟 | grep -v fd0

但也許我們錯過了一些其他需要通過grep -v過濾的設備

**lsblk |**可能會出現哪些其他磁碟設備?grep disk而不是真正的磁碟?

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

如果您只想要設備主要編號標識為 SCSI 的磁碟8,而沒有設備分區,則可以搜尋設備主要而不是字元串“disk”:

lsblk -d | awk '/ 8:/'

其中-d(或--no-deps)選項表示不包括設備分區。

對於相當新的 linux 系統,更簡單的

lsblk -I 8 -d

正如使用者尼克所說,應該足夠了。

我只想獲取所有磁碟的設備名稱,而沒有任何其他輸出。最終使用了這個:

lsblk -nd --output NAME

這會產生類似的東西

sda
sdb

-d只輸出磁碟, -n刪除標題行,並--output NAME確保只列出設備的名稱。

引用自:https://unix.stackexchange.com/questions/414305