Linux 可以给 rm 命令增加回收站功能,实现文件删除后可恢复,核心思路是替换系统默认的 rm 命令,让它把文件移动到指定的回收站目录,而非直接永久删除。以下是两种简单易懂、可直接上手的实现方法:
方法 1:通过别名(Alias)快速实现(临时/永久)
这是最轻量化的方案,无需安装额外工具,适合个人使用。
原理创建一个自定义别名,让输入 rm 时,实际执行的是 mv 命令(将文件移动到回收站目录,如 ~/.trash)。
具体步骤
第一步:创建回收站目录
mkdir -p ~/.trash # -p 确保目录不存在时创建
第二步:添加临时别名(重启终端失效)
alias rm='mv -t ~/.trash/'此时输入 rm 文件名,文件会被移动到 ~/.trash,而非删除。
第三步:设置永久别名(重启终端生效)将别名写入 ~/.bashrc(Bash 终端)或 ~/.zshrc(Zsh 终端):
echo "alias rm='mv -t ~/.trash/'" >> ~/.bashrc source ~/.bashrc # 立即生效
恢复文件直接从回收站目录移动回原路径即可:
mv ~/.trash/文件名 原目录路径
注意事项
若需真正删除文件,可使用 \rm 文件名(反斜杠跳过别名)。
定期清理回收站:\rm -rf ~/.trash/*。
方法 2:使用专业工具 trash-cli(功能更完善)
trash-cli 是一款开源的回收站工具,支持删除、恢复、列出回收站文件、清空回收站等完整功能,适合需要更规范管理的场景。
安装 trash-cli
Debian/Ubuntu 系:
sudo apt install trash-cli
CentOS/RHEL 系:
sudo yum install trash-cli
源码安装(通用):
pip install trash-cli
核心命令| 命令 | 功能 ||---|---|| trash-put 文件名 | 将文件移入回收站 || trash-list | 列出回收站所有文件(含删除时间、路径) || trash-restore | 交互式恢复文件(按提示选择序号) || trash-empty | 清空回收站 || trash-rm 文件名 | 从回收站永久删除指定文件 |
替换 rm 为 trash-put同样通过别名实现:
echo "alias rm='trash-put'" >> ~/.bashrc source ~/.bashrc
两种方法对比
| 安装成本 | 零成本,无需额外工具 | 需要安装软件包 |
| 功能丰富度 | 仅支持移动/恢复 | 支持列表、交互式恢复、清空等 |
| 跨终端同步 | 仅当前用户生效 | 全局生效(需配置) |
| 适合场景 | 个人临时使用 | 长期、规范的文件管理 |
重要提醒
该功能仅对普通文件/目录有效,对系统核心文件(如 / 根目录)需谨慎操作,避免误移动导致系统故障。
回收站目录会占用磁盘空间,建议定期清理,可通过 crontab 设置定时任务自动清空(如每周日清空)。
网友回复
有没有有专门针对 UI 界面截图进行智能标记(Set-of-Mark, SoM) 的开源库和工具?
如何用python实现Set-of-Mark (SoM) 技术?
python如何截取windows指定应用的窗口截图,不用管窗口是不是在最前面?
linux能不能给rm删除命令增加回收站功能,可恢复被删文件?
bfwsoa如何在命令行中执行控制器动作器方法?
RAG(检索增强生成)和 KG(知识图谱)有啥不同?
KVM硬件是啥?
ai大模型对于大型项目源码上下文不够是如何解决进行开发与修改功能的?
有没有开源虚拟浏览器在本地打开使用的是服务器上的网络?
有没有30-50元左右的2核2g内存的linux盒子?


