简介
系统管理员经常会用到rm -rf
来删除一些服务器上的文件,对于职场老油条还行,但是对于新手来说这个命令就有点骇人了, 不小心删除了,找都找不回来(比较难),那有没有跟windows一样的回收站功能呢?有!
trash-cli
用于移动文件到回收站,同时会记录文件的原地址、删除日期和权限。
安装
# 命令行安装
pip install trash-cli
# 源码安装
# 为所有用户安装:
git clone https://github.com/andreafrancia/trash-cli.git
cd trash-cli
sudo pip install .
# 为当前用户安装:
git clone https://github.com/andreafrancia/trash-cli.git
cd trash-cli
pip install .
# 为当前用户安装后你可能需要把以下代码添加到 .bashrc:
export PATH=~/.local/bin:"$PATH"
# 卸载命令
pip uninstall trash-cli
# Debian/Ubuntu (apt):
sudo apt install trash-cli
用法
trash-put #把文件或目录移动到回收站
trash-empty #清空回收站
trash-list #列出回收站文件
trash-restore # 恢复回收站文件
trash-rm #删除回收站文件
示例
[root@ewain-tencent:/data/devops]# ll
总用量 4
-rw-r--r-- 1 root root 0 9月 21 10:31 1
-rw-r--r-- 1 root root 0 9月 21 10:31 2
-rw-r--r-- 1 root root 0 9月 21 10:31 3
-rw-r--r-- 1 root root 0 9月 21 10:31 4
-rw-r--r-- 1 root root 8 5月 9 10:27 README.md
[root@ewain-tencent:/data/devops]# trash-put ./* # 删除所有文件
[root@ewain-tencent:/data/devops]# ll
总用量 0
[root@ewain-tencent:/data/devops]# trash-list # 查看被删除的文件
2022-09-21 10:31:43 /data/devops/1
2022-09-21 10:31:43 /data/devops/4
2022-09-21 10:31:43 /data/devops/README.md
2022-09-21 10:31:43 /data/devops/2
2022-09-21 10:31:43 /data/devops/3
[root@ewain-tencent:/data/devops]# trash-restore # 恢复文件
0 2022-09-21 10:42:07 /data/devops/1
1 2022-09-21 10:42:07 /data/devops/4
2 2022-09-21 10:42:07 /data/devops/README.md
3 2022-09-21 10:42:07 /data/devops/2
4 2022-09-21 10:42:07 /data/devops/3
What file to restore [0..4]: 1 # 按序号来恢复,也可恢复文件夹。
[root@ewain-tencent:/data/devops]# trash-rm 2 # 回收站删除单个文件,不可恢复
[root@ewain-tencent:/data/devops]# trash-list
2022-09-21 10:42:07 /data/devops/1
2022-09-21 10:42:07 /data/devops/README.md
2022-09-21 10:42:07 /data/devops/3
[root@ewain-tencent:/data/devops]# trash-empty # 清空回收站
Would empty the following trash directories:
- /root/.local/share/Trash
Proceed? (y/n) y
删除的文件其实是在$USER/.local/share/Trash/files
给系统的rm命令别名
[root@ewain-tencent:/data/devops]# echo "alias rm='trash-put'" >> /etc/bashrc # 不太建议,Bash别名仅在交互式shell中使用,因此使用此别名不应干扰预期使用rm的脚本。脚本删除的文件不回去回收站。
[root@ewain-tencent:/data/devops]# source /etc/bashrc
[root@ewain-tencent:/data/devops]# rm 4
[root@ewain-tencent:/data/devops]# trash-list
2022-09-21 11:13:19 /data/devops/4
[root@ewain-tencent:/data/devops]# rm test_file # 删除文件夹也不需要加r
[root@ewain-tencent:/data/devops]# trash-list
2022-09-21 11:13:19 /data/devops/4
2022-09-21 11:15:43 /data/devops/test_file
自动清理工具
Autotrash 是一个用于自动删除的小型 Python 脚本 (永久删除)垃圾文件。
- 安装
$ wget https://github.com/bneijt/autotrash/archive/v0.2.1.zip
$ unzip v0.2.1.zip
$ cd autotrash-0.2.1
$ python setup.py install
$ whereis autotrash
autotrash: /usr/bin/autotrash
- 用法
$ autotrash -d 30 #删除回收站中超过 30 天的文件
$ autotrash -td 30 #删除所有用户的回收站文件,上边的命令只删除当前用户对应的回收站文件
$ autotrash --max-free 1024 -d 30 #如果回收站的剩余的空间少于 1GB,那么 autotrash 将从回收站中清除超过 30 天的已删除文件