删除是危险系数很高的操作,一旦误删可能会造成难以估计的损失。比如,一条简单的语句:rm –rf /* 就会把整个系统全部删除,而 Linux 并不会因为这条语句的不合理而拒绝执行。
在 Windows 中,为了防止误删,系统默认提供了回收站功能。用户在执行删除操作后,文件并不会直接从硬盘中删除,而是被放到回收站中。在清空回收站前,如果发现有文件被误删,用户可以将回收站中的文件恢复到原来的位置。而 Linux 并没有提供类似功能,删除命令 rm 一旦确认执行,文件就会直接从系统中删除,很难恢复。
本文以 CentOS 系统环境为例,给 Linux 创建一个简单的回收站功能。
1.新建一个回收站目录
我们服务器的/data分区容量比较大,所以回收站目录建在/data下面
mkdir /data/trash
2.新建一个删除执行文件
vim /bin/trash mv $@ /data/trash :wq 保存退出
3. 添加别名
alias rm=/bin/trash
4.使全局生效,在/etc/bashrc文件底部添加如下内容
alias rm=/bin/trash
chmod /bin/trash
chmod /data/trash
使配置生效
source /etc/bashrc
5.测试删除test.log,执行rm命令后,发现test.log已经被移动到/data/trash目录了
6.如果想彻底删除,则使用系统原生rm命令删除即可
/bin/rm -rf test.log