作者:Maxwell Li
日期:2017/02/03
未经作者允许,禁止转载本文任何内容。如需转载请留言。
近几天 GitLab 由于程序猿加班误删了几百 G 的数据,细细想来,自己也因为 rm -rf
闯过不少祸。所以想着在 Linux 下建一个回收站,每次执行 rm 命令时,将文件移动到回收站内,然后定时清除。Google 了一下,发现已经有 trash-cli 工具了。
安装 trash-cli:
$ apt-get install -y trash-cli
trash-cli 提供以下命令:
trash-put 或 trash 将文件或者目录放入回收站
trash-empty 清空回收站
trash-list 列出回收站文件
restore-trash 还原回收站文件(会显示列表,方便使用标号还原)
trash-rm 删除回收站文件(单个永久删除)
在 ~/.bashrc 文件后加入配置,映射 rm 命令:
alias rm=trash-put
alias rl=trash-list
alias urm=restore-trash
添加完毕后保存,执行 source 命令使其生效:
$ source ~/.bashrc
测试:
root@lyn:/home/test# mkdir test
root@lyn:/home/test# touch test1 test2
root@lyn:/home/test# ll
total 12
drwxr-xr-x 3 root root 4096 Feb 3 17:05 ./
drwxr-xr-x 6 root root 4096 Feb 3 17:05 ../
drwxr-xr-x 2 root root 4096 Feb 3 17:05 test/
-rw-r--r-- 1 root root 0 Feb 3 17:05 test1
-rw-r--r-- 1 root root 0 Feb 3 17:05 test2
root@lyn:/home/test# rm test
root@lyn:/home/test# rm test1
root@lyn:/home/test# rm test2
root@lyn:/home/test# rl
2017-02-03 17:05:45 /home/test/test
2017-02-03 17:05:55 /home/test/test2
2017-02-03 17:05:53 /home/test/test1
root@lyn:/home/test# urm
0 2017-02-03 17:05:45 /home/test/test
1 2017-02-03 17:05:55 /home/test/test2
2 2017-02-03 17:05:53 /home/test/test1
What file to restore [0..2]: 1
root@lyn:/home/test# ll
total 8
drwxr-xr-x 2 root root 4096 Feb 3 17:06 ./
drwxr-xr-x 6 root root 4096 Feb 3 17:05 ../
-rw-r--r-- 1 root root 0 Feb 3 17:05 test2
root@lyn:/home/test# rm test2
root@lyn:/home/test# trash-empty
root@lyn:/home/test# rl
所有功能正常,但是作为懒癌晚期,必须设置定时清理。利用 crontab -e
添加定时任务。输入:
0 2 * * * trash-empty
保存退出。
crontab 的详细用法:http://linuxtools-rst.readthedocs.io/zh_CN/latest/tool/crontab.html
网友评论