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
df
df
将仅显示已安装的分区。如果这就是您想要的,那么从输出中提取设备节点,您需要从剩余输出中提取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