文件被 rm 之后还能救回来吗?一文掌握 trash-cli 命令行回收站的完整用法

发布时间:2026/8/15 21:04:03

文件被 rm 之后还能救回来吗?一文掌握 trash-cli 命令行回收站的完整用法
文件被 rm 之后还能救回来吗一文掌握 trash-cli 命令行回收站的完整用法【免费下载链接】trash-cliCommand line interface to the freedesktop.org trashcan.项目地址: https://gitcode.com/gh_mirrors/tr/trash-cli如果你在服务器上做过运维多半经历过这样的时刻一条rm -rf敲下去回车之后才猛然想起目录里还有一份没备份的配置又或者在某次清理磁盘时把同事刚生成的报表一起删了。rm的好处是干脆利落代价是没有任何后悔药。这时候你会意识到删除操作真正缺的不是更快的删除而是一条安全的退路。trash-cli 正是为这个缺口设计的——它是 freedesktop.org 回收站标准的命令行实现让你在终端里也能像桌面环境那样先删进回收站、随时可恢复而且和你 GNOME、KDE 图形界面里的回收站是同一个。先想清楚一个问题为什么rm不适合当日常删除工具很多人第一次接触 trash-cli 时会问我用了十几年rm也没出过大事。这个判断基本靠运气。rm的设计目标是立即释放空间它既不询问、也不留痕更没有后悔这个功能。下面这张表能直观看出它和回收站式删除的本质差异维度rm直接删除trash-cli 回收站删除删除后是否可恢复不可除非提前备份可以随时用 restore 找回是否记录原路径不记录每个文件都记录原始位置是否记录删除时间不记录写入 DeletionDate 字段是否跨分区安全与回收站无关遵循同卷优先规则是否适合放进脚本危险误操作代价高安全可配合 cron 自动清理rm不是不能用而是应该留给确认不要了的场景。日常的、试探性的、可能还要反悔的删除都应该走回收站。trash-cli 的价值就是把这个习惯变成一条命令的事。三分钟跑通第一个最小示例安装方式按自己的环境选一种即可。最通用的是 pip想隔离环境就用 pipxDebian/Ubuntu 用户也可以直接用系统包管理器pip install trash-cli # 或者 pipx install trash-cli装好之后验证一下三个命令是否就位trash-put --version现在做一个完整的删除 → 查看 → 恢复闭环。先造一个测试文件mkdir -p ~/tmp/trash-demo echo 这是一份重要的草稿 ~/tmp/trash-demo/meeting-notes.txt把它送进回收站trash-put ~/tmp/trash-demo/meeting-notes.txt确认原文件已经不在原位然后列出回收站内容trash-list输出会类似这样每一行左侧是删除时间右侧是文件被删除前的完整路径2026-08-14 18:20:11 /home/you/tmp/trash-demo/meeting-notes.txt最后把它恢复回来trash-restore 0 2026-08-14 18:20:11 /home/you/tmp/trash-demo/meeting-notes.txt What file to restore [0..0]: 0输入序号0回车文件就回到了原位内容分毫不差。到这里你已经掌握了 trash-cli 最核心的三个动作trash-put送进回收站、trash-list查看清单、trash-restore按序号恢复。回收站里到底存了什么一份.trashinfo的前世今生用过图形界面回收站的人可能会好奇trash-cli 怎么保证和桌面环境同一个回收站答案藏在目录结构和元数据文件里。主分区通常是家目录所在卷的回收站位于~/.local/share/Trash/ ├── files/ # 被删除文件的真实存放处 └── info/ # 与文件一一对应的元数据你删掉的meeting-notes.txt会变成files/meeting-notes.txt同时在info/下生成一个meeting-notes.txt.trashinfo。这个元数据文件是纯文本格式遵循 freedesktop.org 的 Trash 规范核心内容就两行[Trash Info] Path/home/you/tmp/trash-demo/meeting-notes.txt DeletionDate2026-08-14T18:20:11Path记录原始位置带 URL 编码DeletionDate记录精确到秒的删除时间。trash-list读的就是这两个字段trash-restore靠Path决定把文件放回哪里。想深入看解析逻辑可以读trashcli/parse_trashinfo/目录下的实现。跨分区的情况会稍微复杂如果被删文件不在主分区上trash-cli 会优先在该分区的挂载点创建.Trash/uid目录规则细节写在docs/trash-directories.txt里。日常使用你基本感知不到这个过程只要知道每个分区的文件都会就近进回收站就够了。高频场景批量恢复、按时间清理、按模式定点删除上面是最小闭环实际使用中还有三个高频操作值得单独拎出来。批量恢复一次选多个。trash-restore的输入框支持逗号分隔和区间写法。比如回收站里有 5 个文件你想恢复第 1、2、4、5 个What file to restore [0..4]: 0-1,3-4它会依次把选中的文件全部放回原位。注意恢复时如果原位置已经有同名文件默认会拒绝覆盖并给出提示确认想覆盖的话可以用--overwrite参数。按时间清理给回收站设保质期。回收站最大的隐患是只进不出磁盘迟早被占满。trash-empty支持天数参数只删除超过指定天数的文件# 清空 30 天前的所有回收站文件 trash-empty 30不带参数就是全部清空请谨慎使用。这个保质期逻辑对定期清理特别有用后面会讲怎么挂到 cron 上。按模式定点删除而不是全部清空。有时候你只想从回收站里挑出某一类文件彻底删掉trash-rm干的就是这件事trash-rm *.tmp trash-rm /home/you/tmp/trash-demo/*它的匹配规则基于原始路径以/开头的模式匹配完整路径否则匹配文件名。这里有一个新手必踩的坑——模式一定要加引号。不加引号的话Shell 会在命令执行前就把*.tmp展开成当前目录下的文件列表trash-rm收到的是文件名而不是模式结果完全不是你想要的行为。容易被忽略的两个坑坑一回收站允许同名文件共存靠后缀区分。如果你先后删除两个同名文件比如两次trash-put report.pdf第二个文件在files/里会自动改名成report_1.pdf依次递增。这个细节平时无感但如果你用脚本直接扫描files/目录做统计就会被后缀搞晕。好在trash-list和trash-restore都基于.trashinfo工作展示的始终是原始路径所以所有操作都应该走这几个命令而不是直接翻files/目录。坑二trash-put和rm的参数语义不同。有人习惯给rm加别名指向trash-put项目文档里明确不建议这么做——两者语义并不完全一致比如rm删目录需要-r而trash-put不需要混用别名会让行为变得难以预测。更好的替代方案是让rm在敲下去之前拦你一下alias rmecho This is not the command you are looking for.; false真想用rm时前面加反斜杠绕过别名即可\rm file。这个别名只在交互式 Shell 里生效不会影响脚本里的正常rm调用。把回收站接进自动化定时清理与脚本集成trash-cli 的另一个重要场景是脚本和定时任务。比如给回收站设置30 天自动过期一行 cron 就能搞定(crontab -l ; echo daily $(which trash-empty) 30) | crontab -以后每天都会自动清掉超过 30 天的回收站文件旧文件既不占空间新误删的又还在保质期内。写进部署脚本时trash-put因为不会真的删数据比rm安全得多配合trash-list做巡检、trash-restore做救援就构成了一套完整的删除生命周期管理。源码层面如果想了解命令的组装方式入口分别在trashcli/put/main.pytrash-put、trashcli/list/trash-list、trashcli/restore/trash-restore想改行为、加功能可以从这几个目录入手。下一步行动清单如果你刚接触 trash-cli按这个顺序上手最快装好之后用本文的示例把删除 → 列表 → 恢复完整跑一遍记住恢复要输入序号把trash-put纳入日常习惯替代那些可能还要反悔的rm调用给回收站设一个定时清理任务避免只进不出把trash-rm *.模式的引号规则写进团队文档这是最常见的误用点排查存量脚本凡是直接删文件的地方评估是否值得换成先入回收站再定期清空的模式。误删是每个终端用户的必修课trash-cli 不能让你不犯错但能让错误变得可以挽回——这大概是对删除这件事最好的设计。【免费下载链接】trash-cliCommand line interface to the freedesktop.org trashcan.项目地址: https://gitcode.com/gh_mirrors/tr/trash-cli创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

微信小程序实现两张图片合二为一

微信小程序实现两张图片合二为一

2026/8/15 21:04:03

wxml页面:<canvas canvas-id"myCanvas" type"2d" id"myCanvas"style"position:fixed;top: 50%;left: 50%;transform: translate(-50%,-50%);width: 290px;height:390px;box-sizing:border-box;" />js部分:that.frame(下层图片,上…

Vue3,setup,高德地图api,实现地图搜索查询地址功能

Vue3,setup,高德地图api,实现地图搜索查询地址功能

2026/8/15 21:04:03

效果图:高德地图搜索api支持模糊搜索.高德地图key申请:安装依赖:npm i amap-jsapi-loader -- s地图组件页面:<template><div class"main"><div class"form"><!--搜索框--><input type"text" class"input" …

ORB_SLAM2_ROS与RViz可视化教程:直观理解SLAM建图过程

ORB_SLAM2_ROS与RViz可视化教程:直观理解SLAM建图过程

2026/8/15 20:54:03

ORB_SLAM2_ROS与RViz可视化教程&#xff1a;直观理解SLAM建图过程 【免费下载链接】orb_slam_2_ros A ROS implementation of ORB_SLAM2 项目地址: https://gitcode.com/gh_mirrors/or/orb_slam_2_ros ORB_SLAM2_ROS是一个基于ROS的实时SLAM库实现&#xff0c;支持单目、…

图解大语言模型:从Transformer到RAG与Agent的认知图谱构建

图解大语言模型:从Transformer到RAG与Agent的认知图谱构建

2026/8/15 22:04:06

1. 项目概述&#xff1a;为什么我们需要“图”解LLM&#xff1f;如果你最近在关注AI&#xff0c;尤其是大语言模型&#xff0c;可能会被各种术语淹没&#xff1a;Transformer架构、注意力机制、微调、RAG、Agent……这些概念单独理解已经不易&#xff0c;更别说理清它们之间千丝…

Arch Linux开机网络故障排查与中文社区软件源配置指南

Arch Linux开机网络故障排查与中文社区软件源配置指南

2026/8/15 22:04:06

1. 问题引入&#xff1a;当Arch Linux在开机后“失联”如果你刚完成Arch Linux的安装&#xff0c;满怀期待地重启&#xff0c;准备大展拳脚&#xff0c;却发现屏幕右下角的网络图标是个红叉&#xff0c;或者ping archlinux.org毫无反应&#xff0c;别慌&#xff0c;这几乎是每个…

小白吃透DeepSeek Harness:新一代AI Agent框架保姆级实战教程

小白吃透DeepSeek Harness:新一代AI Agent框架保姆级实战教程

2026/8/15 22:04:06

小白吃透DeepSeek Harness&#xff1a;新一代AI Agent框架保姆级实战教程 大家好&#xff0c;我是黒漂技术佬&#xff01; 最近AI圈又出重磅开源项目&#xff0c;DeepSeek官方全新推出的DeepSeek Harness一经开源就刷屏技术圈。很多新手小伙伴一脸懵&#xff1a;这到底是新大模…

C++时间处理实战:从time_t到localtime,掌握时间戳与日期转换

C++时间处理实战:从time_t到localtime,掌握时间戳与日期转换

2026/8/15 22:04:06

1. 项目概述&#xff1a;为什么获取当前时间是个“技术活”&#xff1f;在C项目里&#xff0c;处理时间戳和日期时间&#xff0c;几乎是每个开发者都绕不开的基础操作。无论是给日志文件打上精确的时间戳&#xff0c;还是计算某个操作的耗时&#xff0c;甚至是实现一个简单的定…

中美Robotaxi“四国杀”:2026,谁在领跑万亿出行终局?

中美Robotaxi“四国杀”:2026,谁在领跑万亿出行终局?

2026/8/15 22:04:06

2026年&#xff0c;全球自动驾驶行业正式告别了“PPT造车”与“实验室炫技”的初级阶段&#xff0c;全面迈入真刀真枪的“规模化商业运营”深水区。在这场关乎未来城市出行话语权的争夺战中&#xff0c;中美两国的头部玩家展现出了截然不同的战略定力与战术打法。当前&#xff…

AI网关Leanroute:统一接入与管理LLM与MCP工具,破解AI应用集成难题

AI网关Leanroute:统一接入与管理LLM与MCP工具,破解AI应用集成难题

2026/8/15 21:54:06

如果你正在构建一个AI应用&#xff0c;是否经历过这样的场景&#xff1a;为了接入不同的模型&#xff0c;你需要在代码里写满各种API密钥、处理不同的调用格式、管理复杂的计费逻辑&#xff1b;为了让AI能调用外部工具&#xff0c;你不得不为每个工具编写适配器&#xff0c;处理…

比较好的亚太EMBA,问了6位校友师资差别真的挺大

比较好的亚太EMBA,问了6位校友师资差别真的挺大

2026/8/13 11:01:28

比较好的亚太EMBA核心差异先看什么&#xff1f;对于希望兼顾工作与系统管理能力提升的亚太区高管而言&#xff0c;筛选匹配度高的EMBA项目时&#xff0c;师资配置是决定学习体验与实际收获的核心要素之一。我们结合3-4个公开信息透明、办学历史较长的亚太区主流EMBA项目特点&am…

备考3个月对比6份资料 海外游学的亚洲EMBA面试注意点

备考3个月对比6份资料 海外游学的亚洲EMBA面试注意点

2026/8/14 10:48:24

备考海外游学的亚洲EMBA面试&#xff0c;核心要围绕项目国际化设计逻辑、个人跨文化管理经验匹配度两个维度准备&#xff0c;避免把游学模块等同于普通旅游参访的认知偏差。不少备考者花3个月对比6份资料&#xff0c;却容易忽略面试官对“国际视野落地能力”的考察——比如香港…

比较好的国内EMBA,问了二十位校友聊透人脉价值

比较好的国内EMBA,问了二十位校友聊透人脉价值

2026/8/13 17:17:06

比较好的国内EMBA核心差异体现在哪些方面&#xff1f;比较好的国内EMBA的核心长期价值&#xff0c;很大程度上依托于校友网络的连接质量与资源生态的活跃度&#xff0c;这也是不少高管在择校时优先考量的因素。我们结合3-4个市场关注度较高的项目公开信息&#xff0c;从课程、师…

一文读懂快消WMS怎么选?2026年国内外10大主流WMS品牌盘点

一文读懂快消WMS怎么选?2026年国内外10大主流WMS品牌盘点

2026/8/15 0:03:07

快消品&#xff08;FMCG&#xff09;是流通速度较快、竞争较为激烈的行业之一。一瓶饮料从出厂到消费者手中&#xff0c;往往只有几十天甚至几天的周转窗口。这决定了快消行业的仓储管理系统&#xff08;WMS&#xff09;与制造业、电商行业存在明显区别&#xff1a;它不仅需要管…

内景 空间站内部 中国空间站 太空 内仓

内景 空间站内部 中国空间站 太空 内仓

2026/8/15 0:03:07

本项目为前几天收费帮学妹做的一个项目&#xff0c;在工作环境中基本使用不到&#xff0c;但是很多学校把这个当作编程入门的项目来做&#xff0c;故分享出本项目供初学者参考。 一、项目描述 空间站内部 中国空间站 太空 内仓 地址&#xff1a;本地PC端运行&#xff08;或Web…

重新定义数据接口:3个突破性场景让通达信数据读取更智能

重新定义数据接口:3个突破性场景让通达信数据读取更智能

2026/8/15 0:03:07

重新定义数据接口&#xff1a;3个突破性场景让通达信数据读取更智能 【免费下载链接】mootdx 通达信数据读取的一个简便使用封装 项目地址: https://gitcode.com/GitHub_Trending/mo/mootdx 当我们面对海量金融数据时&#xff0c;传统的数据获取方式往往让我们陷入困境—…

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

2026/8/15 1:04:46

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具&#xff0c;覆盖选题构思、文献整理、内容生成、格式排版等核心场景&#xff0c;真正帮你高效搞定论文难题。 一、全流程王者&#xff1a;一站式搞定论文全链路&#xff08;一天定稿首…

导师推荐!2026最新AI论文工具测评与实用推荐

导师推荐!2026最新AI论文工具测评与实用推荐

2026/8/15 10:10:27

2026年真正好用的AI论文工具&#xff0c;核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测&#xff0c;千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队&#xff0c;覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

告别游戏崩溃:XCOM 2模组管理器的智能革命

告别游戏崩溃:XCOM 2模组管理器的智能革命

2026/8/14 19:35:14

告别游戏崩溃&#xff1a;XCOM 2模组管理器的智能革命 【免费下载链接】xcom2-launcher The Alternative Mod Launcher (AML) is a replacement for the default game launchers from XCOM 2 and XCOM Chimera Squad. 项目地址: https://gitcode.com/gh_mirrors/xc/xcom2-lau…