核心功能
trash-cli 是 FreeDesktop.org 回收站规范的标准命令行实现,提供与 KDE、GNOME、XFCE 桌面环境互通的文件回收站操作。核心命令包括:trash-put(安全删除)、trash-list(查看回收站)、trash-restore(交互式恢复)、trash-empty(清空/定期清理)、trash-rm(按模式删除)。
显著优势
1. 数据安全:彻底避免 rm 的不可逆操作,删除文件保留原始路径、删除时间和权限信息
2. 生态兼容:与主流 Linux 桌面环境共享回收站,图形界面与命令行无缝衔接
3. 灵活恢复:支持按编号交互式恢复,可批量操作(如 0-2,3),支持 --overwrite 覆盖选项
4. 自动分区处理:智能识别文件来源分区,跨分区删除时自动创建对应回收站目录
5. 多安装渠道:支持 Homebrew、pip、apt、pacman、dnf 等主流包管理器
潜在局限
- Btrfs 不兼容:明确不支持 Btrfs 文件系统
- 只读限制:无法删除只读文件系统的文件
- 语义差异:与
rm命令参数不完全兼容(如目录无需-R),直接别名替换可能引发脚本问题 - 跨平台差异:macOS 回收站路径与 Linux 不同,实际行为依赖系统实现
适用人群
- 频繁使用终端的开发者、运维人员
- 对数据安全敏感、担心误删关键文件的用户
- 需要在服务器/远程环境中使用类桌面回收站功能的场景
- 习惯命令行但希望保留"后悔药"的 Linux/macOS 用户
使用建议
官方不建议将 rm 直接别名替换为 trash-put,推荐设置提醒别名:alias rm='echo "Use trash-put instead!"; false'。关键操作前先用 trash-list 确认,恢复前用 grep 过滤定位目标文件。定期用 trash-empty N 清理旧文件,避免回收站膨胀。
风险提醒
虽然比 rm 安全,但 trash-empty 和 trash-rm 仍是永久删除操作。跨分区删除时,若外置存储被移除,回收站内容将失联。