<
/div><
/div> 命令时,你会发现它有很多灵活的选项,能够满足不同的统计需求。最基础的用法是直接跟上目录路径,它会递归地列出该目录下所有子目录和文件的空间占用。<
/p>
比如,我想看看当前目录的总体大小,我通常会这么做:</p>
du</code></code></code></code></code></code></code></code></code></code> -s</code>h .</pre><
/div><
/div>
这里的
-s</code></pre><
/div><
/div> (summary) 选项会只显示总计,而不是列出每个子目录的详细信息,而
-h</code></code></pre><
/div><
/div>
<
/div><
/div> (human
-r</code>eadable) 则会将结果以人类更易读的单位(如 K, M, G)显示出来。这比默认的以块(block)为单位显示要直观得多。</p> 如果你想深入了解某个特定目录,比如
/var/log</code></pre><
/div><
/div> 到底有多少日志文件,占用了多少空间,但又不想看到每个日志文件的详细大小,只想看子目录的总和,可以这样:<
/p>
du</code></code></code></code></code></code></code></code></code></code> -h</code></code> --max-depth=1</code> /var/log</code></pre><
/div><
/div>
--max-depth=1</code></pre><
/div><
/div> 限制了
du</code></code></code></code></code></code></code></code></code></code></pre><
/div><
/div>
<
/div><
/div>
<
/div><
/div>
<
/div><
/div>
<
/div><
/div>
<
/div><
/div>
<
/div><
/div>
<
/div><
/div>
<
/div><
/div>
<
/div><
/div>
<
/div><
/div>
<
/div><
/div>
<
/div><
/div>
<
/div><
/div>
<
/div><
/div>
<
/div><
/div> 只下探一层目录,这在排查哪个子目录是“大户”时非常有用。我个人就很喜欢这个选项,它能让我快速锁定问题区域,而不会被海量的文件列表淹没。<
/p>
有时候,我需要知道所有文件(包括隐藏文件)和目录的大小,这时候
-a</code></pre><
/div><
/div> 选项就派上用场了:<
/p>
du</code></code></code></code></code></code></code></code></code></code> -a</code>h /path/to/directory</pre><
/div><
/div>
这会列出路径下所有文件和目录的大小,同样以人类可读的格式显示。</p> 
如何快速找出Linux系统中占用空间最大的目录?</h2>
这绝对是运维或开发人员最常遇到的场景之一:服务器磁盘报警,你需要马上找出是哪个目录在“作妖”。我通常会先定位到可能出问题的挂载点,然后用
du</code></code></code></code></code></code></code></code></code></code></pre>