7 releases
0.1.6 | Oct 20, 2022 |
---|---|
0.1.5 | Oct 15, 2022 |
#938 in Filesystem
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
rm
api - 📎 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 *.txt
handles more glob matching args,rm
panics 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
rm
and the underlying system calls are not the same. - You may experience different performance results, overall
rmx
improves 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–34MB
~465K SLoC