7 releases
| 0.1.6 | Oct 20, 2022 |
|---|---|
| 0.1.5 | Oct 15, 2022 |
#19 in #trash
35 downloads per month
540KB
889 lines
Contains (ELF exe, 1MB) bin/rmx
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
- 🐧 Original GNU
rmapi - 📎 System trash bin integration (
-t) - ⚡ Blazingly fast
- 💀 Unrecoverable removal (
--shred) - 🔎 More filtering options
- 😄 You tell me
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
Latest linux-musl binary
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.
Dependencies
~5–35MB
~442K SLoC