在 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