Посмотрите, какая директория занимает пространство без учета других точек монтирования

Мне часто приходится чистить некоторые directoryи, потому что они слишком полны. Давайте возьмем /var в качестве примера, поскольку он является общим, по очеviewным причинам.

Чтобы уviewеть, какие подdirectoryи занимают много места, я использую du -sh /var/* . К сожалению, у меня есть огромные данные в подdirectoryах /var , которые размещаются на других разделах, чем /var (например, /var/chroot ) и значительно замедляют process.

Теперь du имеет флаг -x который исkeyает другие точки монтирования. Он отлично работает при выполнении du -shx /var но не с du -shx /var/* поскольку * du -shx /var/* оболочкой, поэтому /var/chroot явно отправляется в du .

Другой вариант, который я предлагал, заkeyался в том, чтобы использовать find /var -xdev -mindepth 1 -maxdepth 1 -exec du -sh {} \+ но опять же, хотя find не следует за другими точками монтирования, он все равно печатает их и передает их в du , следовательно, не смог снова достичь моей цели.

Прежде чем я напишу ужасную функцию bash (или программу perl / python), которая анализирует df или mount в цикле, знает ли кто-нибудь о чистом способе достижения того, что я пытаюсь сделать?

это выглядит так, как вам нужно:

 du -hx - max-depth 1 / var

Я получил ответ от коллеги:

du -hx --max-depth=1 /var

делает трюк.

Interesting Posts
Давайте будем гением компьютера.