仅在 bash 中列出 linux 分区名称

use*_*145 4 linux bash df

linux 上的 df 列出了以下分区统计信息。

-bash-4.1# df
文件系统 1K-blocks Used 可用使用% Mounted on
/dev/sda3 1918217320 1473337340 347440136 81% /
tmpfs 32970328 0 32970328 0% /dev/shm
/dev/sda1 482214 148534 308781 33% /boot
/dev/sdd1 1922860884 1638599284 186585876 90% /disk5
/dev/sdc1 1922858352 1474925416 350257336 81% /disk2
/dev/sdb1 1922858352 1028783752 796399000 57% /disk4

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

小智 8

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

lsblk

或者

fdisk -l

或者

猫 /proc/分区

还有@Giedrius Rekasius 提到的

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


gre*_*ius 5

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

df | grep '^/dev' | cut -d' ' -f1 
Run Code Online (Sandbox Code Playgroud)

或将它们列在以空格分隔的一行中:

df | grep '^/dev' | cut -d' ' -f1 | tr '\n' ' '
Run Code Online (Sandbox Code Playgroud)

如果您想获取不一定挂载的分区列表,则可以以 root 身份运行fdisk -l并可选择指定设备来扫描分区:

fdisk -l [device...]
Run Code Online (Sandbox Code Playgroud)

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

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

fdisk -l | grep '^/dev' | cut -d' ' -f1
Run Code Online (Sandbox Code Playgroud)


eww*_*ite 2

一些想法...

awk '{print $1}' /proc/mounts

df | awk '{print $1}'

df | cut -f1 -d " "