A fast, colorful, and Rust-powered replacement for the traditional ls
command.
bestls
provides human-readable file listings in both pretty tables and JSON formats, with sorting and other modern CLI conveniences built for speed and usability.
- 🎨 Colorful output - Beautiful colored tables for easy reading
- 📊 Multiple formats - Output as tables, compact JSON, or pretty JSON
- ⚡ Blazing fast - Parallel metadata fetching with Rayon
- 📏 Human-readable - File sizes in KB, MB, GB format
- 🔧 Flexible sorting - Sort by name, size, or modification date
- 👁️ Hidden files - View hidden files with --all flag
- 🔒 File permissions - Unix-style permission display
- 👥 Owner info - File owner and group information
- 🔄 Shell completion - Built-in completion for Bash, Zsh, and Fish
- 🪶 Lightweight - Single binary with no external dependencies
cargo install bestls
git clone https://github.com/MurtadaNazar/bestls.git
cd bestls
cargo build --release
The binary will be available at target/release/bestls
.
List current directory:
bestls
List specific directory:
bestls -p /path/to/directory
Pretty table (default):
bestls
Compact JSON:
bestls --json
Pretty formatted JSON:
bestls --json-pretty
Sort by file size:
bestls -s size
Sort by modification date:
bestls -s date
Sort by name (default):
bestls -s name
bestls provides shell completions for Bash, Zsh, and Fish shells. To enable completions:
# For Bash
bestls completion bash > ~/.local/share/bash-completion/completions/bestls
# For Zsh
bestls completion zsh > ~/.zfunc/_bestls
# Then add this to your .zshrc if you haven't already:
# fpath=(~/.zfunc $fpath)
# For Fish
bestls completion fish > ~/.config/fish/completions/bestls.fish
# List home directory with size sorting
bestls -p ~ -s size
# Output current directory as pretty JSON
bestls --json-pretty
# List /etc directory sorted by modification date
bestls -p /etc -s date
# Show all files including hidden ones
bestls -a
# List files with full details (permissions, owner, group)
bestls -a -s date
View all available options:
bestls --help
Option | Short | Description |
---|---|---|
--path |
-p |
Directory path to list |
--sort |
-s |
Sort by: name , size , date |
--all |
-a |
Show hidden files |
--json |
Output compact JSON format | |
--json-pretty |
Output pretty formatted JSON | |
completion |
Generate shell completions | |
--help |
-h |
Show help information |
--version |
-V |
Show version information |
Shell | Description |
---|---|
bash |
Generate Bash completions |
zsh |
Generate Zsh completions |
fish |
Generate Fish completions |
- Rust 1.85.0 or later
- Cargo package manager
-
Clone the repository:
git clone https://github.com/MurtadaNazar/bestls.git cd bestls
-
Build the project:
cargo build --release
-
(Optional) Install globally:
cargo install --path .
Contributions are welcome! Please feel free to submit issues, feature requests, or pull requests.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
This project is licensed under:
- MIT License - See LICENSE for details
- Email: mkm9284@gmail.com
- GitHub: @MurtadaNazar