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%/ 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中?
以root用户身份列出为设备定义的所有分区:
lsblk
要么
fdisk -l
要么
猫/ proc /分区
还有@Giedrius Rekasius所说的
fdisk -l / dev / sda | grep'^ / dev'| 砍掉-d''-f1
df将只显示已安装的分区。 如果这就是你想要的,然后从df输出中提取设备节点,那么grep中以“/ dev”开头的行,并从剩下的输出中cut第一列:
df | grep '^/dev' | cut -d' ' -f1
或者在由空格分隔的单独一行中列出它们:
df | grep '^/dev' | cut -d' ' -f1 | tr '\n' ' '
如果你想得到一个不需要挂载的分区列表,那么你可以运行fdisk -l并且可以指定设备来扫描分区:
fdisk -l [device...]
如果您没有指定任何设备,则fdisk将使用/proc/partitions提到的设备(如果该文件存在)。
Fdisk将以与df相似的格式输出信息,以便提取设备节点,您可以执行与df所述相同的操作:
fdisk -l | grep '^/dev' | cut -d' ' -f1
一些想法…
awk '{print $1}' /proc/mounts
df | awk '{print $1}'
df | cut -f1 -d " "
关于什么 :
df | cut -d" " -f1
另外一个select:
df --type ext2 --type ext3 --type ext4 | tail -n +2 | awk '{ print $1 }' | tr '\n' ' '
--type <filesystem>允许你指定你感兴趣的文件系统 tail -n +2从第二行输出开始打印(所以标题行不打印) awk '{ print $1 }'将打印包含分区信息的最左边一列 tr '\n' ' '会将换行符转换为空格,以便信息全部在一行上 blkid只显示连接到计算机的真实存储器,无论是否安装。
# sudo blkid | awk '{print substr($1, 0, length($1) - 1)}' /dev/sda1 /dev/sda2 /dev/sdb1 /dev/sdb2 /dev/sr1
[root@ct01 ~]# ls /dev/sd*[0-9] /dev/sda1 /dev/sda2
该命令将以易于迭代的forms列出系统中的所有分区:
tail -n +3 /proc/partitions | awk '{ print $4 }'