14

I need to find out what's contributing to the disk usage on a specific filesystem (/dev/sda2):

$ df -h /
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda2              96G   82G  9.9G  90% /

I can't just do du -csh / because I have many other filesystems mounted underneath /, some of which are huge and slow:

$ df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda2              96G   82G  9.9G  90% /
/dev/sdb1             5.2T  3.7T  1.3T  76% /disk3
/dev/sda1              99M   18M   76M  20% /boot
tmpfs                  16G  4.0K   16G   1% /dev/shm
nfshome.XXX.net:/home/userA
                      5.3T  1.6T  3.5T  32% /home/userA
nfshome.XXX.net:/home/userB
                      5.3T  1.6T  3.5T  32% /home/userB

How can I retrieve disk usage only on /dev/sda2?

None of these work:

  • Attempt 1:

    $ du -csh /dev/sda2
    0       /dev/sda2
    0       total
    
  • Attempt 2:

    $ cd /dev/sda2/
    cd: not a directory: /dev/sda2/
    
1
  • Maybe I am missing something, but why doesn't the Used column give you what you are looking for?
    – StrongBad
    Apr 11, 2017 at 13:44

2 Answers 2

20

Use the -x (single file system) option:

du -cshx /

This instructs du to only consider directories of / which are on the same file system.

2
  • Thanks Stephen. Not sure this works the way I understand it does (see this followup) Apr 11, 2017 at 13:45
  • Note that the magic here is the -x option. The other options here, mirroring the OP approach, report in human-readable numbers, and summarize the results, including a grand total. So for example, du -x / would give a full description of all files on the root file system.
    – nealmcb
    Jul 31, 2021 at 17:03
1

There are two options to solving your problem:

Using the option --exclude which makes du ignore the given path.

du --human-readable --exclude=/home

Using the option --one-file-system would tell du to not go into a different file system.

du --human-readable --one-file-system /
2
  • I have home on a different partition but when I use `du -hd1x ` the home directory is included. I use debian stretch. What do I misunderstand in "one file system"?
    – user855443
    Nov 26, 2018 at 22:56
  • To find directories containing a large size, I would recommend adding --max-depth=1: du --human-readable --one-file-system --max-depth=1
    – koppor
    Sep 24, 2021 at 7:50

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.