ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

从误删到瞬间找回:trash-cli 命令行回收站完整实战指南

从误删到瞬间找回:trash-cli 命令行回收站完整实战指南 从误删到瞬间找回trash-cli 命令行回收站完整实战指南【免费下载链接】trash-cliCommand line interface to the freedesktop.org trashcan.项目地址: https://gitcode.com/gh_mirrors/tr/trash-cli你是否经历过这样的时刻精心整理的目录被一条rm -rf命令清空几周的工作成果瞬间蒸发而终端只留下一个沉默的提示符如果你用过 Linux 命令行这几乎是必修的人生一课——rm没有后悔药删掉就是删掉。而今天要介绍的trash-cli正是为这个痛点而生它把删除变成移入回收站让 FreeDesktop.org 标准下的命令行文件删除随时可以反悔。它的核心价值很简单你仍然用命令行但不再承担不可逆的风险。先弄明白trash-cli 到底是什么、凭什么值得用trash-cli 是 freedesktop.org 回收站标准的命令行实现。这句话听起来专业翻译成人话就是它和你在 KDE、GNOME、XFCE 桌面里点击删除用的是同一个回收站。你在终端用 trash-put 删掉的文件稍后打开文件管理器同样能看到它反之亦然。命令行和图形界面在这里第一次实现了无缝互通。相比rm的物理删除trash-cli 有几个难以拒绝的理由可反悔文件被移动到回收站原始路径、删除时间、权限都被记录在.trashinfo文件中随时可以完整恢复。跨分区安全它遵循 FreeDesktop 规范处理不同分区的回收站$HOME/.local/share/Trash与顶层.Trash不会因为跨设备移动而出错。五条命令覆盖全生命周期trash-put放入、trash-list查看、trash-restore恢复、trash-empty清空、trash-rm定点删除各司其职。天生适合脚本所有命令都是普通 CLI可以放进 crontab、接入 CI、写进运维脚本实现自动化清理。一句话对比rm是删除即永别trash-cli 是删除但保留反悔权——代价只是一点磁盘空间收益却是数据安全。一分钟上手装好、删一个文件、再把它找回来安装非常简单任选一种方式# 方式一用 pip 安装推荐随 Python 一起 pip install trash-cli # 方式二用 pipx 隔离安装更干净不影响系统 Python pipx install trash-cli # 方式三从源码安装最新版 git clone https://gitcode.com/gh_mirrors/tr/trash-cli cd trash-cli pip install .安装后如果提示命令找不到记得把~/.local/bin加入 PATHecho export PATH$PATH:~/.local/bin ~/.bashrc source ~/.bashrc现在做个最小验证。先造一个测试文件把它删掉再列出来看看echo hello trash-cli test.txt # 创建测试文件 trash-put test.txt # 放入回收站而不是真正删除 trash-list # 列出回收站内容期望输出trash-list会打印一行记录包含删除时间和你测试文件的原始完整路径例如2026-08-14 18:05:00 /home/you/test.txt。这说明删除已进入回收站下一步任何失误都可以挽回。整个验证过程用不了一分钟。场景实战一日常清理文件从此告别手滑场景痛点清理日志、临时文件、旧构建产物是每天都会做的事。用rm时一条命令下去路径拼错一个字母删掉的可能就是另一个东西。你需要的不是更小心而是一个兜底机制。操作步骤把习惯从rm换成trash-put其余照旧——它同样支持通配符和目录。# 批量放入回收站清理所有 .log 文件 trash-put *.log # 整个目录直接放入回收站注意不需要 -r 参数 trash-put build/ # 删除前先看看回收站确认删对了东西 trash-list | grep build执行效果trash-list输出中出现了build目录的完整原始路径说明整目录已安全入站。此时哪怕你发现误删了build/里某个重要脚本也还有后悔的余地——这正是场景二要做的事。场景实战二误删文件急救恢复比想象中更快场景痛点文件已经进回收站了怎么拿回来用文件管理器一个个翻太慢尤其在服务器上根本没有图形界面。你需要一条命令完成列出—选择—恢复。操作步骤直接运行trash-restore它会列出回收站所有文件并等待你选择trash-restore期望输出与交互0 2026-08-14 18:05:00 /home/you/test.txt 1 2026-08-14 10:21:33 /home/you/build/old_script.py What file to restore [0..1]:输入0回车test.txt就会带着原始路径、权限被放回原位。如果一次误删了多个文件也支持逗号和范围组合trash-restore # 输入 0-1 恢复第 0 到 1 号文件或输入 0,1 效果相同关键细节恢复时如果原始位置已存在同名文件trash-cli 会先询问你默认不覆盖若你确认要覆盖可以加--overwrite参数强制用回收站里的版本替换。这在旧版本文件被新文件顶掉、想找回旧版的场景里尤其好用。场景实战三自动化维护让回收站自己瘦身场景痛点回收站只进不出磁盘迟早被塞满。手动定期清理很反人性而且经常忘。trash-cli 的设计恰好支持按天数清理让维护自动化。操作步骤trash-empty带一个数字参数表示只删除 N 天前被回收的文件# 删除 30 天前放入回收站的文件 trash-empty 30 # 不带参数则清空整个回收站谨慎使用 trash-empty把它写进 crontab每天自动执行(crontab -l ; echo daily $(which trash-empty) 30) | crontab -执行效果这条命令会给当前用户的 crontab 追加一行让系统每天自动清理 30 天前的回收站文件。既保证近期误删有得救又避免回收站无限膨胀。可以用crontab -l查看确认。清理前想演习一遍加--dry-run参数只打印会删什么不真正执行安全第一。场景实战四精准定点删除只清掉你想清的那部分场景痛点回收站里积累了几百个文件只想删掉某类中间产物比如所有.o编译目标文件。全部清空太粗暴逐个恢复再删又太蠢。这时需要的是按模式定点删除。操作步骤trash-rm接受通配符模式只删除匹配的文件# 删除回收站中所有 .o 文件注意用双引号包住防止 shell 先展开 trash-rm *.o # 也可以按路径过滤删除某个目录名下被回收的所有文件 trash-rm /home/you/temp/*执行效果trash-rm *.o会遍历回收站只移除原始路径匹配*.o的记录其余文件原封不动。配合trash-list | grep先确认目标再执行删除就是一套非常精准的回收站整理流程。进阶玩法与常见误区进阶把安全删除变成肌肉记忆。直接alias rmtrash-put并不推荐见下方误区但你可以让rm变成一道提醒alias rmecho 要用 trash-put 安全删除; false这样每次敲rm都会被拦下来提醒一次真到了确认要物理删除的时候用\rm 文件即可绕过别名把选择权交回自己手里。误区一能直接把rm别名成trash-put吗不建议。两者语法并不完全兼容rm删目录需要-Rtrash-put不需要rm支持的一些参数trash-put未必有。别名之后你会在不经意间踩到语法差异的坑。更好的方案是上面的提醒别名。误区二文件到底被移到哪里去了同一分区通常是 home 分区的文件默认进入~/.local/share/Trash/其中files/存文件本体info/存带.trashinfo后缀的元数据记录。如果文件在其他分区回收站会放在该分区顶层的.Trash目录——这也是 FreeDesktop 规范的一部分保证跨分区也能正确回收。误区三回收站提示权限不足或无法使用常见于顶层.Trash目录权限不对。规范要求它可写且带 sticky 位可按下面方式修复sudo mkdir --parent /.Trash sudo chmod arw /.Trash sudo chmod t /.Trash从今天开始把删除变成可撤销回看整个过程trash-cli 解决的其实是一个很朴素的问题命令行用户也需要后悔药。它不改变你删除文件的方式只改变删除的后果——从不可逆变成随时可恢复。日常清理用trash-put误删了用trash-restore定时维护交给trash-empty 30精确清理靠trash-rm五条命令刚好覆盖文件生命周期的全部环节。而这一切都与你桌面环境的回收站互通不需要额外学习任何图形操作。现在就打开终端把trash-put用起来吧。哪怕只是从下次删文件先想 3 秒开始也已经在为自己的数据多上一道保险。毕竟真正的专业不是从不犯错而是犯了错还有退路。【免费下载链接】trash-cliCommand line interface to the freedesktop.org trashcan.项目地址: https://gitcode.com/gh_mirrors/tr/trash-cli创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表