包含给定文件的设备上有多少可用空间

包含给定文件的设备上有多少可用空间

在 Linux 中,给定一个文件路径,有没有办法知道它位于哪个文件系统上?

具体来说,我试图弄清楚驱动器上还剩下多少空间/home/itsadok/bananas。从df我可以看到各个已安装的驱动器上还剩下多少空间,但很难弄清楚其中哪些是相关的。

顺便说一句,我想通过脚本来执行此操作,因此不允许进行有根据的猜测。

答案1

跑步

df -k /home/itsadok/bananas

(-k 表示以千字节为单位的大小,如果你不想要它可以被忽略)

这将为您提供仅包含该文件的文件系统的剩余大小,至少在 AIX 上是这样。

答案2

我在玩自由度阅读完这个问题后,我认为这可能对某些人有所帮助:
要在脚本中获取它,您必须删除标题行,也就是说,只保留包含文本的输出行/dev/sda1。所以我这样做了:

$ df -h .| grep dev

这给了我这个:

/dev/sda1 41G 3.6G 36G 10% /

并得到36克部分,我这样做了:

$ df -h . | grep dev | cut -d' ' -f20

玩转还给出了其他部分:

$ df -h . | grep dev | cut -d' ' -f1
/dev/sda1

作为伊萨多克指出如下,awk更适合于此目的,因为空格数和/或字段宽度的变化会破坏基于解决方案。
因此,这是更好的选择:

$ df -h . | grep dev | awk '{print $4}'
36克

答案3

由于这是在脚本中:

stat -fc '%a * %S' -- "$fname" |bc

相关内容