Linux,tools 給Linux添加回收站 发表于 2022-09-21 浏览量 449 没有评论 # 简介 系统管理员经常会用到`rm -rf` 来删除一些服务器上的文件,对于职场老油条还行,但是对于新手来说这个命令就有点骇人了, 不小心删除了,找都找不回来(比较难),那有没有跟windows一样的回收站功能呢? `trash-cli` 用于移动文件到回收站,同时会记录文件的原地址、删除日期和权限。 [trash-cli](https://github.com/andreafrancia/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 脚本 (永久删除)垃圾文件。 [autotrash](https://github.com/bneijt/autotrash) - 安装 ``` $ 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 天的已删除文件 ```