linux恢复 rm -rf * 误删数据


linux误删除文件后应尽快将磁盘挂载为只读,否则后续操作可能会覆盖这些数据,越早发现,并挂载为只读,恢复的成功机率就越大。因此,本文只是提供一种方式,不能保证一定能恢复误删的数据。

一、磁盘分区挂载为只读

1、查看被删除文件位于哪个分区

[root@localhost ~]# mount
/dev/sda3 on / type ext4 (rw)
/dev/sda1 on /boot type ext4 (rw)
/dev/sdb1 on /opt type ext4 (rw)

2、将对应目录重新挂载为只读

[root@localhost  ~]#  mount -r -n -o remount /opt
mount: /home is busy
如果显示 xxx is busy
[root@localhost  ~ ]# fuser -v -m /opt

找出相关进程,kill掉

[root@localhost  ~ ] #  mount -r -n -o remount /opt

成功后,此时在/opt目录 touch文件时,会报错:

[root@localhost  opt ] # touch txt
touch: cannot touch `txt’: Read-only file system

二、安装数据恢复工具 extundelete

1、下载extundelete-0.2.4

下载源:
http://superb-dca2.dl.sourceforge.net/project/extundelete/extundelete/0.2.4/extundelete-0.2.4.tar.bz2

2、安装

需要安装编译环境及extundelete依赖的包
yum -y install gcc+ gcc-c++
yum install e2fsprogs e2fsprogs-libs e2fsprogs-devel -y

[root@localhost extundelete-0.2.4]# ./configure 
Configuring extundelete 0.2.4
Writing generated files to disk
[root@localhost extundelete-0.2.4]# make
make -s all-recursive
Making all in src
[root@localhost extundelete-0.2.4]# make install
Making install in src
  /usr/bin/install -c extundelete '/usr/local/bin'
[root@localhost extundelete-0.2.4]# cd src/     --验证
[root@localhost src]# ./extundelete -v
extundelete version 0.2
### Linux `rm -rf *` 命令的作用及使用注意事项 #### 一、命令作用 `rm -rf *` 是一个在 Linux 系统中用于删除文件和目录的强大命令。具体来说,该命令的功能如下: - **`rm`**: 表示删除操作。 - **`-r` (recursive)**: 递归删除,表示如果目标是一个目录,则连同其内部的所有子目录和文件一起被删除- **`-f` (force)**: 强制删除,不需要任何确认提示,并忽略不存在的文件或目录[^2]。 - **`*`**: 通配符,匹配当前目录下所有的文件和子目录。 因此,`rm -rf *` 的含义是:**强制且递归地删除当前工作目录下的所有文件和子目录**[^3]。 --- #### 二、潜在风险 尽管 `rm -rf *` 功能强大,但它也存在极高的风险,主要体现在以下几个方面: 1. **不可逆性** 删除后的文件通常无法通过常规手段恢复,除非提前配置了专门的数据恢复工具(如 extundelete),但这并不能保证百分之百成功[^4]。 2. **误删可能性高** 如果当前所在的工作目录并非预期的目标目录,可能会意外删除重要的系统文件或其他关键数据[^3]。 3. **缺乏交互确认** `-f` 参数的存在使得命令运行过程中没有任何用户干预的机会,一旦输入错误便可能造成严重后果[^2]。 4. **影响范围广** 当前路径下的所有内容都会受到影响,包括隐藏文件(以`.`开头命名的文件)。这可能导致某些必要的配置文件丢失[^3]。 --- #### 三、使用建议与安全措施 为了避免因不当使用而导致灾难性的损失,在实际应用时应采取以下预防措施: 1. **明确当前位置** 在执行命令之前,先利用 `pwd` 查看当前位置是否为目标清理区域;再用 `ls` 列举出即将被清除的内容加以核对[^3]。 2. **采用更谨慎的方式** 替代方案可以考虑去掉 `-f` 参数加入 `-i` 参数来启用逐项询问模式(`rm -ri`),从而让用户有机会决定哪些项目应该保留下来。 3. **做好备份工作** 对于那些至关重要的资料务必事先保存副本以防万一发生失误还能迅速找回原始状态[^3]。 4. **限定作用域** 将星号替换为具体的名称列表或者运用更加精确的选择器比如 `{file1,file2}` 来指定确切要处理的对象而不是笼统地说全部。 5. **测试环境验证** 若不确定某条指令的效果如何可以在虚拟机里先行试验观察结果后再迁移到正式服务器上去实施[^3]。 --- ```bash # 示例代码展示如何安全地进行删除操作 echo "Current Directory:" pwd echo "Files and Directories to be removed:" ls -la . read -p "Are you sure? (yes/no): " confirm if [[ "$confirm" == "yes" ]]; then echo "Deleting..." rm -rv . else echo "Operation canceled." fi ``` 以上脚本首先打印出了现在所处的位置以及准备移除的东西清单给使用者审阅之后才继续下一步骤; 并且加入了人为判断环节减少自动化的盲目性. ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值