删除是危险系数很高的操作,一旦误删可能会造成难以估计的损失。在云服务器 ECS Linux 系统中这种危险尤为明显。比如,一条简单的语句:rm –rf /* 就会把整个系统全部删除,而 Linux 并不会因为这条语句的不合理而拒绝执行。
在 Windows 中,为了防止误删,系统默认提供了回收站功能。用户在执行删除操作后,文件并不会直接从硬盘中删除,而是被放到回收站中。在清空回收站前,如果发现有文件被误删,用户可以将回收站中的文件恢复到原来的位置。而 Linux 并没有提供类似功能,删除命令 rm 一旦确认执行,文件就会直接从系统中删除,很难恢复。
本文以 CentOS6.5 系统环境为例,给 Linux 创建一个简单的回收站功能。
1. 新建一个回收站目录。
2. vim /bin/trash 编辑一个文件。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
您描述的方法为Linux系统提供了一个简易的“回收站”功能,通过重定向rm
命令来避免直接删除文件,而是将文件移动到一个特定的回收站目录中。这里我注意到您的步骤中存在一些小错误和不清晰的地方,让我为您澄清并提供一个修正后的步骤指南:
mkdir -p /tmp/trash
编辑trash脚本: 首先,使用文本编辑器(如vim)创建或编辑一个脚本文件,用于实现“移动到回收站”的功能。
vim /usr/local/bin/trash
在打开的文件中输入以下内容:
#!/bin/bash
mv "$@" /tmp/trash/
然后保存并退出(在vim中是:wq
)。
赋予脚本执行权限:
chmod +x /usr/local/bin/trash
设置rm命令的别名:为了安全起见,我们不直接替换rm
命令,而是在用户配置文件中(如~/.bashrc
或全局的/etc/bashrc
对于所有用户)添加一个别名。这样可以避免影响系统的默认行为,并且对单个用户更加可控。 打开相应的配置文件(这里以个人用户为例):
vim ~/.bashrc
在文件末尾添加:
alias rm='/usr/local/bin/trash'
对于全局设置,编辑/etc/bashrc
并加入相同内容,但请注意这会影响所有用户。
启用新的bash配置:
source ~/.bashrc
测试:现在尝试删除一个文件,它会被移到回收站。
rm a.txt
真正删除文件:当需要永久删除文件时,可以直接使用完整路径调用原始的rm
命令,或者使用-i
参数进行确认删除。
/bin/rm -i a.txt # 这会提示你确认删除
请确保遵循这些步骤,并根据实际情况调整路径和配置文件。这个方法提供了一层额外的安全防护,但也要注意,定期清理回收站目录,以免占用过多存储空间。