我经常发现自己不得不清理一些目录,因为它们太满了。 让我们以/var为例,因为这是常见的,原因很明显。
为了看哪个子目录需要很多空间,我使用du -sh /var/* 。 不幸的是,我在/var的子目录中有大量的数据,这些数据恰好在/var (例如/var/chroot )之外的其他分区上运行,大大减缓了进程的速度。
现在du有一个-x标志,排除其他挂载点。 当du -shx /var而不是du -shx /var/*时它工作正常,因为*由shell扩展,所以/var/chroot被明确地发送到du 。
我提出的另一个select是使用find /var -xdev -mindepth 1 -maxdepth 1 -exec du -sh {} \+但是,即使find没有跟随其他挂载点,它仍然会打印它们并将它们传递给du ,因此再没有达到我的目标。
在我编写一个可怕的bash函数(或perl / python程序)来parsingdf或mount到一个循环之前,有没有人知道一个干净的方法来实现我想要做的?
它看起来像你需要的是这样的:
du -hx - 最大深度1 / var
我从一位同事那里得到了答案:
du -hx --max-depth=1 /var
做的伎俩。