__
_ __ _ __ ___ _ __ / _| _ __ ___
| |__|| |_ ` _ \ | |__|| |_ | |__|/ __|
| | | | | | | || | | _|| | \__ \
|_| |_| |_| |_||_| |_| |_| |___/
🧹 rmrfrs is a powerful filesystem cleaning tool designed to optimize storage by identifying and removing unnecessary files within known project structures.
20+ Supported Project Types
Cargo (Rust), CMake (C, C++), Composer (PHP), Elixir, Godot 4.x (C#, GDScript)
Gradle (Java) Jupyter Notebook (Python), Pixi (Python), Maven (Java), Node (JavaScript)
Pub (Dart), Python SBT (Scala), Stack (Haskell), Swift
Unity (C#), Unreal Engine (C++), Zig, .NET (C#, F#) Turborepo (JavaScript)
- Recursive Search: Scans directories and subdirectories for recognized project structures.
- Space Savings: Estimates the amount of space that can be freed by deleting redundant files.
To install rmrfrs, simply clone the repository and follow the instructions below:
git clone https://github.com/trinhminhtriet/rmrfrs.git
cd rmrfrs
cargo install --path .
Running the below command will globally install the rmrfrs
binary.
cargo install rmrfrs
Optionally, you can add ~/.cargo/bin
to your PATH if it's not already there
echo 'export PATH="$HOME/.cargo/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
Run rmrfrs with the following command to start cleaning your filesystem:
rmrfrs --help
rmrfrs recursively cleans project directories
Usage: rmrfrs [OPTIONS] [DIRS]...
Arguments:
[DIRS]... The directories to examine. Current directory will be used if DIRS is omitted
Options:
-I, --ignored-dirs <IGNORED_DIRS> Directories to ignore. Will also prevent recursive traversal within
-q, --quiet... Quiet mode. Won't output to the terminal. -qq prevents all output
-a, --all Clean all found projects without confirmation
-L, --follow-symlinks Follow symbolic links
-s, --same-filesystem Restrict directory traversal to the root filesystem
-o, --older <OLDER> Only directories with a file last modified n units of time ago will be looked at. Ex: 20d. Units are m: minutes, h: hours, d: days, w: weeks, M: months and y: years [default: 0d]
--completions <GENERATOR> Generates completions for the specified shell [possible values: bash, elvish, fish, powershell, zsh]
-d, --default If there is no input, defaults to yes
-h, --help Print help (see more with '--help')
Ex:
rmrfrs code/my_project code/my_project_2
rmrfrs --older 3M
rmrfrs -o3M
Running the below command will globally uninstall the rmrfrs
binary.
cargo uninstall rmrfrs
Remove the project repo
rm -rf /path/to/git/clone/rmrfrs
We welcome contributions!
- Fork this repository;
- Create a branch with your feature:
git checkout -b my-feature
; - Commit your changes:
git commit -m "feat: my new feature"
; - Push to your branch:
git push origin my-feature
.
Once your pull request has been merged, you can delete your branch.
This project is licensed under the MIT License - see the LICENSE file for details.