rm删除到回收站
rm删除到回收站
- 背景
- 安装trash-cli
- pip安装
- 包管理器安装
- 将trash-put别名设为rm
- 设置回收站文件过期时间
- trash基本用法
- 删除文件
- 删除后文件去了哪里
- 查看回收站
- 从回收站中恢复文件
- 恢复文件到指定路径
- 删除回收站中的指定文件
背景
在Linux命令行下操作的时候会不小心误删文件或目录
,而trash-cli
就是虚拟回收站
的一个程序。
在使用此命令删除东西的时候, 会把对应的文件和目录放入一个名为”.trash
”的临时文件夹中,稍后我们可以从这个文件夹中永久删除或者恢复这些文件
,也可以设置这些文件的有效期。
安装trash-cli
pip安装
需要Python3.7以上
pip3 install trash-cli
包管理器安装
# Ubuntu / Debian
apt install -y trash-cli
将trash-put别名设为rm
vim /etc/profile.d/rm.sh
cat << EOF >> /etc/profile.d/rm.sh
# rm 禁用
alias rm="/usr/local/bin/trash-put"
EOFsource /etc/profile.d/rm.sh
设置回收站文件过期时间
配置定时任务删除三个月前的文件
# 命令整体作用:向当前用户的 crontab 中添加「每天清理回收站超90天文件」的任务,同时保留原有 crontab 任务
(crontab -l ; echo "@daily $(which trash-empty) 90") | crontab -
命令解释:
(crontab -l ; # 1. 先列出当前用户已有的所有 crontab 任务(防止覆盖原有定时任务)echo "@daily $(which trash-empty) 90" # 2. 输出要新增的定时任务行# ├─ @daily → cron 特殊时间关键字,代表「每天执行一次」# ├─ $(which trash-empty) → 自动获取 trash-empty 命令的绝对路径(解决 crontab 环境变量缺失问题)# └─ 90 → trash-empty 的参数,含义是「删除回收站中超过 90 天的文件」
) | crontab - # 3. 将「原有任务 + 新任务」的合并结果,通过管道传给 crontab - ,实现 crontab 配置更新(- 表示从标准输入读取配置)
trash基本用法
命令 | 解释 |
---|---|
trash | 把文件或目录放到回收站 |
trash-put | 把文件或目录放到回收站 |
trash-list | 查看回收站中所有文件或目录 |
trash-restore | 从回收站恢复指定文件或目录 |
trash-rm | 删除回收站中指定文件或目录 |
trash-empty | 清除回收站中的所有文件(可以指定时间范围) |
删除文件
# 删除test文件
rm test
删除后文件去了哪里
被trash-put
删除的文件,会被移动到用户家目录
下的专属回收站目录
:$HOME/.local/share/Trash/
目录名 | 作用 |
---|---|
$HOME/.local/share/Trash/files | 删除后的文件会被移动到这里 |
$HOME/.local/share/Trash/info | 记录已删除文件的原路径 、删除时间 等信息 |
查看回收站
# 查看回收站中的文件列表
trash-list
从回收站中恢复文件
trash-restore# 会进入交互界面
输入文件序号
,文件会被恢复到原始路径
恢复文件到指定路径
# 移动已删除的目录到其他路径
mv $HOME/.local/share/Trash/files/test /tmp/test
删除回收站中的指定文件
# 删除回收站中超过 90 天的文件
trash-empty 90