如何在Linux shell中查找给定路径的可用磁盘空间?

19

1) 我正在某个目录中 2) 我想要查看还剩下多少可用空间

有没有一个简单的命令可以做到这一点?我不想查看 fstab 或其他文件,然后在脑海中映射设备和挂载点,以确定我还剩下多少可用空间。


2
请问Unix命令如何查看磁盘总容量以及可用空间? - user3850
1
这个问题不是230407的重复,因为它是特定于主目录的。正如一个答案提到的那样,每个用户的主目录可能会有配额限制。 - Keith
4个回答

45

尝试使用 df -h

更好的方式是: df -h . 或者 df -h 文件路径


df -h 看起来工作正常,但我无法让 df -h .df -h path-to-file 工作。对于我在亚马逊服务器上运行的这三个命令,输出结果都只是:Filesystem Size Used Avail Use% Mounted on /dev/xvda1 30G 21G 8.7G 71% /。 - D.Tate
@D.Tate df 返回磁盘使用情况。因此,似乎您的服务器上只有一个分区(磁盘),即 /dev/xvda1。所有文件都在此分区上。因此,您将获取此分区中所有文件的磁盘使用情况。 - marli

16

在其他人讨论的“df”命令只是问题的一部分。了解文件系统有可用空间并不意味着用户可以访问该空间。

您还可以使用以下命令:

df -k .

要找出当前文件系统的可用空间,可以使用'df'命令智能地帮你遍历目录树并返回结果。如果你想检查磁盘配额(请参见下文),则可以处理df命令输出的结果以查找需要检查配额的文件系统。

可能会有没有空闲inode节点(df -i $PWD),也可能会有为超级用户保留的块(在ext2/3/4上默认情况下,总容量的5%将被保留给root用户)。我认为df命令显示的空闲空间包括保留的块数,因此,如果你不是root用户,则看到的数字实际上比可用空间要高。

用户可能会受到限制,如磁盘配额。由于存储成本非常低廉,现在磁盘配额限制已经很少见了,但使用quota命令进行检查仍然值得一试。


9

我会使用以下代码来与所有不同的 df(1) 和它们的输出更兼容:

df . | awk '$3 ~ /[0-9]+/ { print $4 }'

不需要使用tail(1),因为可以通过正则表达式匹配来实现。

2
df -Ph $PWD | tail -1 | awk '{ print $3}'

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接