Multiplatform drop in replacement for GNU rm
with extra features
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.
- 🐧 Original GNU
rm
api - 📎 System trash bin integration (
-t
) - ⚡ Blazingly fast
- 💀 Unrecoverable removal (
--shred
) - 🔎 More filtering options
Benches are defined here
To profile how rmx
performs on your system:
cargo bench
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
rmx --rip node_modules
rmx file1 file2 -t
rmx --follow-links link
rmx --shred file
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 /
From crates.io
cargo install rmx
AUR: yay rmx-bin
Find all release targets here
Put in your favorite shell rc file:
alias rm='rmx'
- 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.