Initialize `sized` CLI tool with comprehensive features for directory visualization. Features: - Fast parallel directory traversal using `rayon`. - Rich table output with colors and dual units (Binary/Decimal). - Recursive sizing with depth control (`-d`). - Filtering by minimum size (`-m`). - Sorting by name, type, size, or blocks (`--sort`). - Gitignore integration (`--ignore`). - Multiple output formats: Text, CSV, JSON (`--format`). - Export to file functionality (`--save`). - Shell completion generation (`--completions`).
66 lines
2.0 KiB
Markdown
66 lines
2.0 KiB
Markdown
# Sized
|
|
|
|
A fast, concurrent, and feature-rich command-line tool for visualizing disk usage, written in Rust.
|
|
|
|
## Features
|
|
|
|
- **Fast & Concurrent**: Uses `rayon` to 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 `.gitignore` and `.ignore` files 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:
|
|
|
|
```bash
|
|
cargo install --path .
|
|
```
|
|
|
|
## Usage
|
|
|
|
### Basic Usage
|
|
Analyze the current directory:
|
|
```bash
|
|
sized
|
|
```
|
|
|
|
Analyze a specific path:
|
|
```bash
|
|
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:**
|
|
```bash
|
|
sized . -d 1 -i -m 50MB --format csv --save
|
|
```
|
|
|
|
**Generate Shell Completions (Zsh):**
|
|
```bash
|
|
sized --completions zsh > _sized
|
|
```
|
|
|
|
## License
|
|
|
|
[MIT](LICENSE)
|