+
18
-

回答

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 设置定时任务自动清空(如每周日清空)。

网友回复

我知道答案,我要回答