- Refactor core traversal to single-pass O(N) tree construction - Optimize CSV output using `csv` crate for robust escaping - Optimize JSON output with zero-copy serialization - Add MANUAL.md - Bump version to 0.2.0 - Remove walkdir dependency
2.5 KiB
2.5 KiB
Sized
A fast, concurrent, and feature-rich command-line tool for visualizing disk usage, written in Rust.
Features
- Fast & Concurrent: Uses
rayonto process directories in parallel, making it extremely fast on modern multi-core systems. - Rich Output: Beautifully formatted tables with colors, distinguishing files and directories.
- Dual Units: Displays sizes in both Binary (MiB, GiB) and Decimal (MB, GB) units for clarity.
- Advanced Filtering: Filter by minimum size (
-m 10MB) to find large items quickly. - Sorting: Flexible sorting by name, type, size, or block count (
--sort). - Gitignore Support: Respects
.gitignoreand.ignorefiles to keep output clean (-i). - Export Options: Export data to CSV or JSON for further analysis (
--format csv/json). - Save to File: Automatically save reports with timestamped filenames (
--save).
Installation
From Source
Ensure you have Rust and Cargo installed. Clone the repository and install:
cargo install --path .
Usage
Basic Usage
Analyze the current directory:
sized
Analyze a specific path:
sized /path/to/directory
Options
| Flag | Description | Example |
|---|---|---|
-d, --depth |
Recursion depth (0 = current dir only) | sized -d 1 |
-m, --min-size |
Filter by minimum size | sized -m 100MB |
-s, --sort |
Sort columns (size, name, type, blocks) | sized --sort size:asc |
-f, --path-full |
Force absolute paths in headers | sized -f |
-i, --ignore |
Respect .gitignore files | sized -i |
-j, --threads |
Set number of threads | sized -j 4 |
--format |
Output format (text, csv, json) | sized --format json |
--save |
Save output to file | sized --save |
Examples
Find large directories (depth 1), respecting gitignore, and save to CSV:
sized . -d 1 -i -m 50MB --format csv --save
Generate Shell Completions
Bash:
Add the following to your .bashrc or .bash_profile:
# Option 1: Source directly
source <(sized --completions bash)
# Option 2: Save to file (safer startup time)
sized --completions bash > ~/.sized_completions.bash
echo "source ~/.sized_completions.bash" >> ~/.bashrc
Zsh:
# In your .zshrc
sized --completions zsh > /usr/local/share/zsh/site-functions/_sized
# OR
sized --completions zsh > ~/.zfunc/_sized
fpath+=~/.zfunc
autoload -Uz compinit && compinit
Fish:
sized --completions fish > ~/.config/fish/completions/sized.fish