Skip to main content

Disk usage summary, showing large dirs/files

Project description

dutree shows a summary of the directories/files which take up the most space.

Instead of showing only the root of the files with sizes, or the details of every file, it shows only the paths taking up the most space.

Example usage:

$ dutree /srv --apparent-size

Annotated output, where only paths of >5% of the total size are shown (which is about 4GB for this dataset):

12.1 G  /srv/data/audiofiles/
         ^-- audiofiles contains files/dirs with a total of 12.1G
             but it does NOT contain a single dir or file larger
             than 4G.
 4.3 G  /srv/data/callrecordings/unmatched/
 4.5 G  /srv/data/fax/
17.5 G  /srv/data/playlists/
34.4 G  /srv/data/twinfield_invoices/1/
 7.8 G  /srv/data/*
          ^-- data contains more files/directories than shown above
              but those that don't total above 4G are merged into
              this "leftover" node. that includes everything in
              /twinfield_invoices/ except for the /1/ subdirectory
              which has its individual listing above.
32   B  /srv/*
          ^-- only /data/ is in /srv/, but the directory itself also
              takes up a tiny bit of space
 -----
80.6 G  TOTAL (86558511658)

NOTE: The directories do not count the size of themselves, only of their contents. This explains any discrepancies with du -sb output.

Library usage:

>>> from dutree import Scanner
>>> scanner = Scanner('/srv')
>>> tree = scanner.scan(use_apparent_size=True)
>>> tree.app_size()
86558511658

>>> len(tree.get_leaves())
7

>>> leaf0 = tree.get_leaves()[0]
>>> leaf0.name()
'/srv/data/audiofiles/'

>>> leaf0.app_size() / (1024.0 * 1024 * 1024)
12.092280263081193

Development:

  • Please run the python2 and python3 tests after developing:

    python2 dutree/test_dutree.py
    python3 dutree/test_dutree.py

History

  • v1.7

    • Skip /proc and /sys filesystems by default.

    • Use –xdev to stay on the same filesystem.

    • Uses –count-blocks by default; use –apparent-size to negate.

  • v1.6

    • Fix so the tests work with Python 3 as well.

    • Fix grave bugs with real size. The real size calculation was wrong sometimes, it could raise assertions or the leaf count could be off.

  • v1.5

    • Add apparent vs. real size. Deprecates node.size(). Use node.app_size() instead. Get the real used size using node.use_size(). Group by real used size by passing use_apparent_size=False to scan().

    • Don’t die if we cannot enter directories.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dutree-1.7.tar.gz (12.7 kB view details)

Uploaded Source

File details

Details for the file dutree-1.7.tar.gz.

File metadata

  • Download URL: dutree-1.7.tar.gz
  • Upload date:
  • Size: 12.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 colorama/0.4.4 importlib-metadata/4.6.4 keyring/23.5.0 pkginfo/1.8.2 readme-renderer/34.0 requests-toolbelt/0.9.1 requests/2.25.1 rfc3986/1.5.0 tqdm/4.57.0 urllib3/1.26.5 CPython/3.10.12

File hashes

Hashes for dutree-1.7.tar.gz
Algorithm Hash digest
SHA256 493b271db674b37b440f7e50d7b311e9bac720bbb3677d1bb1ff59bad39a45dc
MD5 afaee7cebac3e9823bb7b451b7aaa860
BLAKE2b-256 770426bdb01a13c954d7da274b066aae67b7d1531f0edf9d77de4719aa774d2c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page