{"id":26581580,"url":"https://github.com/open-technology-foundation/dux","last_synced_at":"2026-05-15T01:37:53.156Z","repository":{"id":283199139,"uuid":"950977811","full_name":"Open-Technology-Foundation/dux","owner":"Open-Technology-Foundation","description":"A fast and efficient Bash utility for analyzing and displaying directory sizes in human-readable format.","archived":false,"fork":false,"pushed_at":"2025-09-21T02:40:06.000Z","size":30,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-07T02:04:47.760Z","etag":null,"topics":["bash","disk-usage"],"latest_commit_sha":null,"homepage":"https://yatti.id/","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Open-Technology-Foundation.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-03-19T01:20:18.000Z","updated_at":"2025-09-21T02:40:09.000Z","dependencies_parsed_at":"2025-09-21T04:14:27.756Z","dependency_job_id":"7329d9a5-3f47-425f-9fb0-da4fc2e46ef0","html_url":"https://github.com/Open-Technology-Foundation/dux","commit_stats":null,"previous_names":["open-technology-foundation/dux"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Open-Technology-Foundation/dux","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Open-Technology-Foundation%2Fdux","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Open-Technology-Foundation%2Fdux/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Open-Technology-Foundation%2Fdux/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Open-Technology-Foundation%2Fdux/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Open-Technology-Foundation","download_url":"https://codeload.github.com/Open-Technology-Foundation/dux/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Open-Technology-Foundation%2Fdux/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278708004,"owners_count":26031932,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-07T02:00:06.786Z","response_time":59,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bash","disk-usage"],"created_at":"2025-03-23T07:21:33.400Z","updated_at":"2026-05-15T01:37:53.144Z","avatar_url":"https://github.com/Open-Technology-Foundation.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# dux - Quick Directory Size Overview\n\n[![Bash](https://img.shields.io/badge/Bash-5.2+-green.svg)](https://www.gnu.org/software/bash/)\n[![License](https://img.shields.io/badge/license-GPL--3.0-blue.svg)](LICENSE)\n\n**Find out where your disk space is going in seconds.**\n\n```bash\n$ dux /var\n4.0KiB    /var/empty\n52.0KiB   /var/mail\n1.2MiB    /var/backups\n23.4MiB   /var/cache\n156.8MiB  /var/lib\n512.3MiB  /var/log\n```\n\n## What It Does\n\n`dux` shows you the size of each subdirectory, sorted smallest to largest. Use it to:\n\n- **Find space hogs** - Quickly identify which directories are consuming disk space\n- **Plan cleanup** - See at a glance what to delete or archive\n- **Monitor growth** - Check which directories are growing over time\n\n## Installation\n\n**One-liner (user install):**\n```bash\ngit clone https://github.com/Open-Technology-Foundation/dux.git \u0026\u0026 cd dux \u0026\u0026 ./install.sh\n```\n\n**One-liner (system-wide):**\n```bash\ngit clone https://github.com/Open-Technology-Foundation/dux.git \u0026\u0026 cd dux \u0026\u0026 sudo ./install.sh\n```\n\nThe installer sets up:\n- `dux` command (symlink to `dir-sizes`)\n- Bash completion\n- Man page (`man dux`)\n\nTo uninstall: `./install.sh --uninstall`\n\n## Usage\n\n```bash\ndux [OPTIONS] [DIRECTORY]\n```\n\n| Option | Description |\n|--------|-------------|\n| `-L` | Follow symlinks |\n| `-q, --quiet` | Suppress permission errors |\n| `-h, --help` | Show help |\n| `-V, --version` | Show version |\n\n### Common Tasks\n\n**Where is my disk space going?**\n```bash\ndux ~              # Check home directory\ndux /              # Check entire filesystem (may need sudo)\n```\n\n**Find the largest directories:**\n```bash\ndux /var | tail -5         # Show 5 largest in /var\nsudo dux / | tail -10      # Show 10 largest on system\n```\n\n**Check a project for bloat:**\n```bash\ndux ~/projects/myapp       # Find large folders in project\n```\n\n**Pipe to other tools:**\n```bash\ndux . | grep -v node_modules   # Exclude node_modules\ndux /home | tee sizes.txt      # Save output to file\n```\n\n**Follow symlinks:**\n```bash\ndux -L /opt/myapp              # Include symlinked directories\n```\n\n## Output Format\n\n```\n\u003csize\u003e    \u003cpath\u003e\n```\n\n- Sizes use IEC units: B, KiB, MiB, GiB, TiB\n- Output is tab-separated (easy to parse with `cut`, `awk`)\n- Sorted smallest to largest (largest at bottom for visibility)\n\n## Handling Permissions\n\nPermission errors appear on stderr but don't stop execution:\n\n```bash\ndux /var                   # Shows errors inline\ndux -q /var                # Suppress errors with --quiet\nsudo dux /var              # Full access to all directories\n```\n\n## Exit Codes\n\n| Code | Meaning |\n|------|---------|\n| 0 | Success |\n| 2 | Usage error (too many arguments) |\n| 3 | Directory not found |\n| 5 | I/O error (mktemp, du failure) |\n| 22 | Invalid option |\n\nAligned with [BCS §BCS0602](https://github.com/Open-Technology-Foundation/bash-coding-standard) canonical exit codes since v1.4.2. Scripts that previously checked `[[ $? -eq 1 ]]` for \"bad path\" must update to `-eq 3`.\n\n## Requirements\n\n- Bash 5.2+\n- GNU coreutils (du, sort, numfmt)\n\n## Why dux?\n\n| | dux | du -h | ncdu | dust |\n|--|-----|-------|------|------|\n| Sorted output | Yes | No* | Yes | Yes |\n| Human-readable | Yes | Yes | Yes | Yes |\n| One command | Yes | No* | Yes | Yes |\n| Interactive | No | No | Yes | No |\n| Dependencies | coreutils | coreutils | ncurses | Rust |\n\n*`du` requires piping through `sort -h` for sorted human-readable output\n\n`dux` fills the gap between raw `du` output and full-featured tools like `ncdu`. It's the quick answer to \"what's using my disk space?\" without installing additional software.\n\n## License\n\nGPL-3.0 - See [LICENSE](LICENSE)\n\n## See Also\n\n- [ncdu](https://dev.yorhel.nl/ncdu) - Interactive disk usage analyzer\n- [dust](https://github.com/bootandy/dust) - du + rust = dust\n- [BASH Coding Standard](https://github.com/Open-Technology-Foundation/bash-coding-standard) - Coding standard used by this project\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopen-technology-foundation%2Fdux","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopen-technology-foundation%2Fdux","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopen-technology-foundation%2Fdux/lists"}