trashy is a simple, fast, and featureful alternative to rm and trash-cli written in rust.
Quick links:
- easy to use, just run
trashy put PATH - recursive by default, without having the issues
- beautiful output
- colorized paths (similar to fd)
- cool tables
- very fast, and faster than trash-cli (see benchmarks)
- much safer than
rm -rf - intuitive syntax and fine grained control
- uses the system trash on both linux and windows
$ trashy first second thirdThis is just sugar for
$ trashy put first second third$ trashy list$ trashy restore first second$ trashy empty first second thirdThe restore and empty subcommands both take very similar arguments and flags.
By default the arguments for restore and empty are interpreted as regular expressions.
Use the -m option to interpret them differently.
$ trashy restore --all$ trashy empty --allRestore with fzf
trashy list | fzf --multi | awk '{$1=$1;print}' | rev | cut -d ' ' -f1 | rev | xargs trashy restore --match=exact --forceEmpty with fzf
trashy list | fzf --multi | awk '{$1=$1;print}' | rev | cut -d ' ' -f1 | rev | xargs trashy empty --match=exact --forcecargo install trashyDownload the binary from Github Releases and put it in your $PATH.
Use your favorite AUR helper.
paru -S trashynix-env -i trashyOr if you have flakes enabled:
nix profile install nixpkgs#trashyThese benchmarks are run on the rust compiler source in the compiler/ directory.
The directory has about 2000 files. The benchmarks are run using hyperfine.
Running put on each file in the compiler/ directory recursively.
hyperfine -M 1 'fd -t f --threads 1 -x trash-put'
Time (abs ≡): 65.849 s [User: 54.383 s, System: 11.370 s]
Now with trashy
hyperfine -M 1 'fd -t f --threads 1 -x trashy put'
Time (abs ≡): 4.822 s [User: 2.014 s, System: 2.918 s]
trashy has practically zero startup time, while trash-cli has a large startup time because it is written in python. This difference in startup time causes massive speed differences when used in scripts. The benchmark shows that trashy is about 13 times faster!
Listing the previously trashed items
hyperfine 'trash-list'
Time (mean ± σ): 383.7 ms ± 10.5 ms [User: 321.8 ms, System: 59.4 ms]
Range (min … max): 375.9 ms … 412.0 ms 10 runs
hyperfine 'trashy list'
Time (mean ± σ): 178.3 ms ± 1.9 ms [User: 135.7 ms, System: 40.4 ms]
Range (min … max): 175.6 ms … 181.0 ms 16 runs
trashy is faster by more than 2 times.
No, see this issue
You should not. The alias will not be present on other systems and habits are really hard to break. An alternative is to alias trashy put to rt or tp.
Copyright (c) 2020 Brian Shu
trashy is distributed under the terms of both the MIT license and the Apache License 2.0.
See the LICENSE-APACHE and LICENSE-MIT
