仅获取已挂载文件系统的大小

Abh*_*ran 5 grep bash disk-usage shell-script cut

我只想获取已安装文件系统的总大小。但问题是我只知道挂载点。所以,我想到了使用df命令。

为了获得这个挂载文件系统的大小,我运行了以下命令:

df --output=target,size | grep -w /mnt/xyz
Run Code Online (Sandbox Code Playgroud)

我得到的结果是这样的:

/mnt/xyz             4339044
Run Code Online (Sandbox Code Playgroud)

我知道如何使用,cut但在这里没有用,因为我不知道字符串和整数之间的空格。有没有办法在终端上打印这个尺寸?

Rui*_*iro 7

你可以不用grep

df --output=target,size /mnt/xyz | awk ' NR==2 { print $2 } '
Run Code Online (Sandbox Code Playgroud)

df接受挂载点作为参数;您可以告诉 toawk只打印第二行 (NR==2) 和第二个参数 $2。

或者更好的是,在您不输出目标时剪切目标,它变成:

df --output=size /mnt/xyz | awk ' NR==2 '
Run Code Online (Sandbox Code Playgroud)

当我还是个初学者时,我也确实设法cut使用tr -s " "(squeeze) 来减少冗余空间来绕过限制,如下所示:

df --output=target,size /mnt/xyz | tail -1 | tr -s " " | cut -f2 -d" "
Run Code Online (Sandbox Code Playgroud)


meu*_*euh 5

还有一个findmnt命令,它可以打印字节数或“人类”数字(不幸的是,带有非 iso 缩写的 1024 的幂):

$ findmnt -no size /mnt/xyz
 9.7G
$ findmnt -bno size /mnt/xyz
10434699264
Run Code Online (Sandbox Code Playgroud)