仅在 bash 中列出 Linux 分区名称

仅在 bash 中列出 Linux 分区名称

Linux 上的 df 列出了分区上的以下统计数据。

-bash-4.1# df
文件系统 1K 块已使用可用使用率% 已安装于
/dev/sda3 1918217320 1473337340 347440136 81% /
tmpfs 32970328 0 32970328 0%/ dev / shm
/dev/sda1 482214 148534 308781 33% /启动
/dev/sdd1 1922860884 1638599284 186585876 90% /磁盘5
/dev/sdc1 1922858352 1474925416 350257336 81% /磁盘2
/dev/sdb1 1922858352 1028783752 796399000 57% /磁盘4

如果我想获取分区名称列表,例如:“/dev/sda3 /dev/sda1 /dev/sdc1...”我该如何在 bash 中执行此操作?

答案1

要以 root 身份列出为设备定义的所有分区,请运行:

lsblk

或者

fdisk -l

或者

猫/ proc /分区

正如@Giedrius Rekasius 所提到的

fdisk -l /dev/sda | grep '^/dev' | cut -d' ' -f1

答案2

dfdf将仅显示已安装的分区。如果这就是您想要的,那么从输出中提取设备节点,您需要从剩余输出中提取grep以“/dev”开头的行和第一列:cut

df | grep '^/dev' | cut -d' ' -f1 

或者将它们列在一行上,并用空格分隔:

df | grep '^/dev' | cut -d' ' -f1 | tr '\n' ' '

如果您想要获取不一定已安装的分区列表,那么您可以以 root 身份运行fdisk -l并选择性地指定要扫描分区的设备:

fdisk -l [device...]

如果您未指定任何设备,则 fdisk 将使用文件中提到的设备(/proc/partitions如果该文件存在)。

Fdisk 将以类似的格式输出信息,df以便提取设备节点,您可以执行如下所述相同的操作df

fdisk -l | grep '^/dev' | cut -d' ' -f1

答案3

blkid仅显示连接到计算机的实际存储(无论是否安装)。

# sudo blkid | awk '{print substr($1, 0, length($1) - 1)}'

/dev/sda1
/dev/sda2
/dev/sdb1
/dev/sdb2
/dev/sr1

答案4

关于什么 :

df | cut -d" " -f1

相关内容