# rmsafe (remove_safely) ## Introduction After (almost) accidentally removing a file with about week's worth of changes for my C lang assignment, I took it as an excuse to lear a bit more of Rust and re-write the rm command. ## Basics Instead of just rm(ing) files and folders, they instead are moved to the local trash or custom path location. ## Installation `cargo install rmsafe` ## Usage NOTE: I have only tested this on Linux Mint 20.3. ``` // view trashcan path rmsafe // removing a single file rmsafe test.txt // removing a single folder; it will recursively move the folder to trash rmsafe test_dir // removing files with wildcard matching; removing all files ending with .o rmsafe -r "*.o" // change trashcan path rmsafe -t "/home/jane/Desktop/.rmsafe" ``` Change your `.bashrc` to include the following ``` alias rm='printf "Avoid using rm!"' alias rms="rmsafe" ``` This disallows the use of rm, you can still use `sudo rm` and not setting rmsafe to rm ensures that you don't accidentally rm while on someone else's computer NOTE: The shell might interpret wildcards before they are passed down as function arguments which might cause problems, best to disable wildcard expansion on the shell ## Contribution Open up an issue on GitHub and I'll be in touch!