#trash #bin #recycle #remove #freedesktop #filesystem

app trashy

trashy 是 rm 和 trash-cli 的简单、快速且功能丰富的替代品

6 个版本 (稳定)

2.0.0 2022年9月30日
1.0.3 2022年8月23日
1.0.2 2022年8月18日
1.0.1 2022年8月8日
0.1.0 2020年10月14日

#1650命令行工具

每月42次 下载

MIT/Apache

325KB
996

trashy

Build Status

trashy 是用 rust 编写的,是 rmtrash-cli 的简单、快速且功能丰富的替代品。

快速链接

演示

demo

特性

  • 易于使用,只需运行 trash PATH
  • 默认递归,没有问题
  • 美观的输出
    • 彩色路径(类似于 fd
    • 酷炫的表格
  • 非常快,比 trash-cli 快(见 基准测试
  • rm -rf 安全得多
  • 直观的语法和精细的控制
  • 在 Linux 和 Windows 上都使用系统回收站

用法

删除路径

$ trash first second third

这只是

$ trash put first second third

列出回收站中的项目

$ trash list

恢复或清空某些文件

$ trash restore first second
$ trash empty first second third

恢复和清空子命令都接受非常相似的参数和标志。

默认情况下,恢复和清空的参数被解释为正则表达式。使用 -m 选项以不同方式解释它们。

恢复或清空所有文件

$ trash restore --all
$ trash empty --all

集成

fzf

使用 fzf 恢复

trash list | fzf --multi | awk '{$1=$1;print}' | rev | cut -d ' ' -f1 | rev | xargs trash restore --match=exact --force

使用 fzf 清空

trash list | fzf --multi | awk '{$1=$1;print}' | rev | cut -d ' ' -f1 | rev | xargs trash empty --match=exact --force

安装

使用 cargo

cargo install trashy

从 Github Releases

从 Github Releases 下载二进制文件并将其放入您的 $PATH 中。

从 AUR

使用您喜欢的 AUR 辅助工具。

paru -S trashy

使用 Nix

niv-env -i trashy

或者如果您已启用 flakes

nix profile install nixpkgs#trashy

基准测试

这些基准测试是在 compiler/ 目录下的 rust 编译器源代码上运行的。该目录大约有 2000 个文件。基准测试使用 hyperfine 运行。

递归地在 compiler/ 目录下的每个文件上运行 put

hyperfine -M 1 'fd -t f --threads 1 -x trash-put'
Time (abs ≡):        65.849 s               [User: 54.383 s, System: 11.370 s]

现在使用 trashy

hyperfine -M 1 'fd -t f --threads 1 -x trash put'
Time (abs ≡):         4.822 s               [User: 2.014 s, System: 2.918 s]

trashy 的启动时间几乎为零,而 trash-cli 由于是用 Python 编写的,启动时间较长。这种启动时间差异在脚本中使用时会导致巨大的速度差异。基准测试显示 trashy 的速度大约是 13 倍快!

列出之前被删除的项

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 'trash 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 的速度比其他方法快 2 倍以上。

常见问题解答(FAQ)

这个项目支持 MacOS 吗?

不支持,请参阅此 问题

我应该将 rm='trash put' 设置为别名吗?

不应该。这个别名在其他系统上可能不存在,而且习惯很难改变。另一种选择是将 trash put 别名为 rttp

许可协议

版权所有 (c) 2020 Brian Shu

trashy 在 MIT 许可协议和 Apache 许可协议 2.0 的条款下发布。

请参阅 LICENSE-APACHELICENSE-MIT

依赖关系

~14–46MB
~732K SLoC