rmx
rmx copied to clipboard
Multiplatform port of GNU rm with extra features and improved performance
rmx
Multiplatform drop in replacement for GNU rm with extra features
About
This project is a close port of GNU rm. The idea is extending the functionality around rm API and bring some niceties with improved performance, specially for large files and deeply nested directories.
Features
- [x] :penguin: Original GNU
rmapi - [x] :paperclip: System trash bin integration (
-t) - [x] :zap: Blazingly fast
- [x] :skull: Unrecoverable removal (
--shred) - [ ] :mag_right: More filtering options
Benchmarks
Benches are defined here
Running
To profile how rmx performs on your system:
cargo bench
Comparison
| remove | rmx | rm | rmt | rmd |
|---|---|---|---|---|
| files | 4.9297ms | 19.991ms | 10.003ms | 9.2056ms |
| recursively nested folders | 4.9784ms | 20.122ms | 10.135ms | 9.3328ms |
| multiple deeply nested folders | 4.8809ms | 19.504ms | 10.308ms | 9.2406ms |
| multiple deeply nested folders (rip mode) | 4.2580ms | - | - | - |
numbers obtained on a Alienware M15 R6, at commit: 34e1e5a2
rmx consistently scores better performance while offering the same API as GNU rm
Examples
Deleting deeply nested directory (blazingly fast)
rmx --rip node_modules
Sending files to system trash bin
rmx file1 file2 -t
Follow symlinks (unix only)
rmx --follow-links link
Wipe a file and make it unrecoverable
rmx --shred file
Standard GNU rm usage
rmx --one-file-system -i *.txthandles more glob matching args,rmpanics at ~10k+ matches`rmx --preserve-root=/home --interactive=once /home/*/*rmx --verbose -rf --no-preserve-root /
Installation
Source
From crates.io
cargo install rmx
Binaries
AUR: yay rmx-bin
Prebuilt binaries
Find all release targets here
Pro-tip:
Put in your favorite shell rc file:
alias rm='rmx'
Disclaimer
- Do not trust this tool for automation/production usage, this is not a 1:1 port of GNU
rmand the underlying system calls are not the same. - You may experience different performance results, overall
rmximproves the computation load. I/O might still be your biggest bottleneck. - Making the contents of a file unrecoverable is not a fully trusted operation nowadays.