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次 下载
325KB
996 行
trashy
trashy 是用 rust 编写的,是 rm 和 trash-cli 的简单、快速且功能丰富的替代品。
快速链接
演示
特性
- 易于使用,只需运行
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
别名为 rt
或 tp
。
许可协议
版权所有 (c) 2020 Brian Shu
trashy 在 MIT 许可协议和 Apache 许可协议 2.0 的条款下发布。
请参阅 LICENSE-APACHE 和 LICENSE-MIT
依赖关系
~14–46MB
~732K SLoC