du -csh /
以上将花费大量的时间来计算,有没有办法看到较less的开销较不准确的结果?
UPDATE
我想知道的是特定目录下的总大小。
至于更优化的版本,我不知道一个。 想到的事情是:
stat -c '%h' ) – 2,那么只需使用该目录的硬链接数即可快速完成此操作。 其中,配额和专用分区选项可能是最简单和最有效的。
问题是'du'必须枚举子树中的每个对象。 这是一个元数据密集型操作,大多数Linux文件系统需要一段时间。 想起某些文件系统,NTFS和Novell的NSS,可以在元数据中跟踪像这样的目录大小,这使得这个操作快得多。 一般情况下,如果你的文件系统支持某种types的目录配额,它必须在内部跟踪这些数据的执行,每一个大小的改变都会被复制到配额点(NTFS)或者每个目录(NSS )当它发生,所以得到一个目录树大小是非常快的。
不幸的是,没有办法使运行更快,只是解决方法。
du -h --max-depth=1
从您当前的工作目录中为您提供人类KB / MB / GB格式的大小。
使用标准工具,您必须获得目录中每个文件的大小,每次您想知道总大小。 一个可能更有效的方法是创build一个“目录大小监视器”,它跟踪目录的当前大小。 没有这样的事情(我知道),但是你可以用inotify来实现。 可能不是bash(和inotify-tools ),但是你可以使用python和pyinotify。
你可能会发现gt5是有用的。 它存储最近的du信息,并在下一次运行时进行比较。 它使用文本模式浏览器(如links显示其输出。
另外,如果你正在做的话,考虑du – “一个文件系统”上的-x选项
du -xh / --max-depth=1
你只会看到根分区上的磁盘使用情况摘要,它不会尝试将/ proc,/ sys,/ dev等加起来。
不可以。你可以定期做一个文本文件,在一个cron作业集中运行一夜,所以你没有相当的数据立即可用?
请注意,在Windows下测量包含大量文件的文件夹所使用的磁盘空间同样需要一些时间。
如果你只想要根文件系统的磁盘使用,那么
df -h /
df -h会做的
df -kh /
这将显示您使用和可用的磁盘空间的数量。
也许
df -h
额外的文本,因为一个简短的答案是不够的serverfault认为我是人类。
要find该目录下的空间,请列出它而不是/ 。 要find目录foo和bar下的空间,请列出以下两项:
du -csh foo bar
如果文件系统不经常更改,则应该使用dnotify来计算磁盘使用情况。