当前位置: 首页 > 面试题库 >

如何*仅*获得bash中磁盘上可用的字节数?

丁理
2023-03-14
问题内容

df在概述方面做得很好。但是,如果我想在Shell脚本中将变量设置为磁盘上可用的字节数,该怎么办?

例:

$ df
Filesystem            1K-blocks     Used Available Use% Mounted on
/dev/sda             1111111111  2222222  33333333  10% /
tmpfs                  44444444      555  66666666   1% /dev/shm

但是我只想返回33333333(字节可用/),而不是整个df输出。


问题答案:

便携性:

df -P /dev/sda1 | awk 'NR==2 {print $4}'

-P选项可确保df以期望的格式打印输出,并且即使设备名称很长,也不会特别打断行名。将设备名称作为参数传递给df可以消除解析过程中的任何危险,例如获取有关/dev/sda10查询时的信息/dev/sda1df -P只打印两行,标题行(您忽略)和一条数据行,在其中打印所需的列。

可能df会显示包含空格的设备名称,例如,如果卷是通过名称挂载的,并且名称包含空格,或者是其远程挂载点包含空格的NFS卷,则存在风险。在这种情况下,没有完全可移植的方法来解析输出df。如果您确定df会显示传递给它的确切设备名称(并非总是如此),则可以删除它:

df -P -- "$device" | awk -vn=${#device} 'NR==2 {$0 = substr($0, n+1); print $3}'


 类似资料:
  • 问题内容: 我正在尝试输出文件系统上的可用磁盘空间量。 如果我运行该命令,则可以通过以人为本并实际查看它来获得有关可用磁盘空间(以kb为单位)的良好信息。 我需要获取这些数据,并在我的shell脚本中的其他地方使用它。我最初考虑使用,但后来我的脚本无法移植到其他磁盘上,因为可用磁盘空间会发生变化,剪切将不会产生准确的结果。 如何仅获得示例的可用磁盘空间(以kb为单位)的输出? 问题答案: 要获取以

  • 我使用Grafana(v2.1.3)进行指标可视化。指标来自Graphite收集的Collectd。目标图是以百分比显示多个节点的空闲磁盘空间,例如,让文件夹 /data,所以以字节表示空闲空间的度量是: 表示总空间的度量是以下各项的总和: 因此,我有以下配置: 这里的$节点是从下拉列表(All,node1,node2,node3等)中选择的变量。当选择一个特定的节点时,它会按预期工作,但选择了错

  • 问题内容: 基本上,我需要输出,其中包括可用空间和卷的总大小。该解决方案需要在Windows,Linux和Mac上运行并使用Go编写。 我浏览了和Go文档,但没有发现任何东西。在Windows上,即使命令行实用程序也很笨拙()或需要提升的特权()。当然有一种方法我还没有发现… 更新: 根据nemo的回答和邀请,我提供了一个跨平台的Go软件包来执行此操作。 问题答案: 在POSIX系统上,可以使用。

  • 问题内容: 我无法使用Android API示例中显示的标准InputStreamReader方法在文本文件中读取和写入扩展字符(例如,法语重音字符)。当我使用以下方法读回文件时: 读取的字符串在扩展字符处而不是在行尾处被截断。然后,字符串的后一半进入下一行。我以为我需要将数据持久化为UTF-8,但是我找不到任何示例,而且我是Java的新手。 谁能为我提供示例或相关文档的链接? 问题答案: 非常简

  • 问题内容: 不同的iOS设备上的键盘高度不同。有人知道我如何以编程方式获取设备键盘的高度吗? 问题答案: 在Swift中: 您可以通过订阅通知来获取键盘高度。(假设您想知道显示的高度是多少)。 像这样: 迅捷2 迅捷3 斯威夫特4 然后,您可以使用以下功能访问高度: 迅捷2 迅捷3 斯威夫特4

  • 问题内容: 是否有一个函数可以返回给定目录路径的驱动器分区上的可用空间? 问题答案: 校验 我相信您可以将“可用空间”计算为 。