坏习惯二——rm -fr误删除

本文分享了在不慎使用rm命令删除重要文件后,通过extundelete工具成功恢复部分文件的经历。介绍了如何安装配置extundelete及恢复步骤。

     使用vim时,很讨厌rm命令的提示,每次删除一个文件时,总是提示是否删除,于是就自动将rm命令转换为rm -fr,这会可没有讨厌的提示了。但是问题出现了,无意间的误操作,写了2天的程序就这样被删除了,痛苦不已。

     于是在网上搜索如何恢复文件,虽然最后恢复出来一些重要文件,但是还是一些文件没有恢复出来。赶紧将rm命令改为原来,以免再出错。

     想想也是,rm命令本来就应该谨慎使用,我想vim设计者也是这样认为的,所以每次rm时都会提示使用者,哎,误会大师了。

     在这里把恢复过程写上,以示警惕自己。

     恢复过程其实很简单(针对我自己的情况:vmware6.5 ubuntu 10.04 ext4)

     主要参考该仁兄的文章,2011-01-12写的,比我早一天,我真是很幸运啊/(^o^)/~

     http://hi.baidu.com/godor9/blog/item/c41f95cd6ed23a1193457e4c.html

 

     1. 看你的文件系统类型,是否为ext4

     #parted 接着输入p

     Number  Start   End     Size    Type      File system     Flags
     1      1049kB  22.6GB  22.6GB  primary   ext4            boot
     2      22.6GB  23.6GB  1020MB  extended
     5      22.6GB  23.6GB  1020MB  logical   linux-swap(v1)

 

     2. 如果是ext4,则可以使用extundelete 工具,该工具针对ext3和ext4文件系统

      参考:http://extundelete.sourceforge.net/

      下载最新版本,./configure --prefix=/var/extundelete; make ; make install

       由于担心安装extundelete后会覆盖我删除的文件,所以我安装到/var目录下,configure时出现了一个错误:Can't find ext2fs library,解决方法:sudo apt-get install e2fslibs-dev e2fslibs-dev,然后make,make install即可

     3. 生产可执行文件extundelete后,使用它来恢复删除的文件:

         #./extundelete /dev/sda1 --restore-all

         需要一段时间,把以前删除的文件只要能恢复的全恢复出来,执行完毕后在当前目录生产一个RECOVERED_FILES目录,里面即是恢复出来的文件,还包括文件夹哦/(^o^)/~,很方便查找。如果你还记得删除文件中一些内容,直接grep就可以了,很快能找到删除的文件,如果找到的Binary file,那只能杯具了。

 

 

 

      注意:在参考那位仁兄的文章时,并没有进入单用户模式,安装完extundelete后直接运行恢复;也没有umount  /home; 提示umount: /home: not mounted。

 

 

<think> 首先,用户的问题是:关于Linux系统中`rm -fr*`命令的作用、风险及正确用法。用户指定了`rm -fr*`,但这是一个常见的错误写法;实际上应该是`rm -rf *`或`rm -fr *`,因为`-fr`可能是一个误写的选项,标准是`-rf`表示递归强制删除。在引用中,用户提到了`rm -fr *`,所以我需要基于此回答。 从系统级指令: - 所有行内数学表达式使用`$...$`,但这里没有数学表达式,所以可能不需要。 - 独立公式用`$$...$$`,但同样,这里可能不适用。 - LaTeX语法正确,确保回答中使用正确的LaTeX格式。 - 使用中文回答。 - 生成相关问题。 - 在回答中引用的段落末尾自然地添加引用标识,如[^1]。 用户提供的引用: - [^1]:关于防止`rm -rf /*`,通过修改PATH环境变量。 - [^2]:误执行`rm -fr *`后的数据拯救。 - [^3]:使用safe-rm工具避免删除关键目录。 - [^4]:数据恢复软件介绍。 - [^5]:误执行后的应对措施。 我需要整合这些信息来回答用户的查询:`rm -fr *`的作用、风险及正确用法。 结构回答: - 回答结构清晰:分步解释。 - 帮助用户逐步解决问题。 - 保证真实可靠:基于引用和自己的知识。 - 添加引用标识在引用段落的末尾。 分解问题: 1. **作用**:`rm -fr *`命令的作用是递归强制删除当前目录下的所有文件和子目录。 - `rm`是删除命令。 - `-f`是强制删除,不提示。 - `-r`是递归删除目录及其内容。 - `*`是通配符,表示当前目录下的所有文件和目录。 2. **风险**: - 主要风险是误删除重要文件或整个系统目录。引用中提到误执行`rm -rf /*`会导致灾难性后果,如删除根目录,使系统无法启动。 - 引用[^2]和[^5]讨论了误执行后的后果和可能的数据恢复- 引用[^3]提到即使有safe-rm工具,也可能无法完全保护。 3. **正确用法**: - 使用时要小心,确保当前目录是正确的。 - 避免在根目录或重要目录中使用。 - 引用[^1]建议修改环境变量或使用别名来防止误操作。 - 引用[^4]提到数据恢复方法,如使用extundelete。 - 正确写法应为`rm -rf directory_name`或`rm -rf files_pattern`,明确指定目录或文件。 生成相关问题: - 在回答后添加相关问题,基于主题。 回答结构: - 开头介绍命令。 - 解释作用。 - 讨论风险。 - 建议正确用法。 - 在引用相关内容时添加引用标识。 - 最后生成相关问题。 确保中文回答。 </think> ### Linux系统中`rm -fr *`命令的作用、风险及正确用法 在Linux系统中,`rm -fr *`是一个常见的文件删除命令,但使用不当可能导致灾难性后果。下面我将逐步解释其作用、风险及正确用法,确保内容真实可靠。 #### 1. **命令作用** - `rm -fr *`命令用于**递归强制删除当前目录下的所有文件和子目录**: - `rm`:是"remove"的缩写,用于删除文件或目录。 - `-f`:强制选项(force),忽略不存在的文件或警告,不提示用户确认。 - `-r`:递归选项(recursive),删除目录及其所有内容(包括子目录和文件)。 - `*`:通配符,表示当前目录下的所有条目(文件和目录)。 - 例如,在`/home/user/data`目录下执行`rm -fr *`,会**立即删除该目录下的所有内容**,而不询问用户。这在清理临时文件或废弃数据时可能有用,但需极端谨慎[^2][^5]。 #### 2. **主要风险** 误用`rm -fr *`可能导致数据丢失、系统崩溃甚至无法恢复,常见风险包括: - **误删除关键系统文件**: - 如果在根目录(`/`)下执行`rm -fr *`,会删除整个Linux系统的核心文件(如`/bin`、`/lib`),导致系统无法启动(俗称"删库跑路")。引用显示,即使设置了防护工具(如`safe-rm`),部分文件仍可能被删除[^3]。 - **数据恢复困难**: - 删除操作不可逆。Linux文件系统(如ext3/ext4)不提供回收站,恢复需专业工具(如`extundelete`),但成功率低。例如,误删后扫描inode信息耗时且复杂,尤其在大容量磁盘上[^4][^5]。 - **环境变量错误导致意外**: - 如果PATH环境变量配置不当(如`/usr/local/bin`未优先),用户可能错误调用系统默认`rm`命令,而非安全版本。引用建议修改`/etc/profile`文件,添加`PATH=/usr/local/bin:$PATH`来降低风险[^1][^3]。 #### 3. **正确用法** 为避免风险,应遵循以下安全实践: - **指定清晰路径**: - **不要**在根目录或重要目录使用通配符`*`。例如,删除`/tmp`下的临时文件时,先确认目录:`cd /tmp && rm -rf ./*`。 - 使用完整路径而非相对路径:`rm -rf /path/to/directory/*`。 - **添加防护措施**: - **使用安全工具**:安装`safe-rm`工具(通过`apt install safe-rm`),在`/etc/safe-rm.conf`配置保护目录(如添加`/*`保护根目录)。但注意,需多层定义(如`/*/*`)以增强安全性[^3]。 - **修改命令别名**:在`.bashrc`中添加`alias rm='rm -i'`,使`rm`默认交互提示,或替换为`mv`移动文件到临时目录定期清理[^1][^4]。 - **备份与恢复准备**: - **定期备份**:使用`rsync`或`tar`备份关键数据- **了解恢复工具**:误删后立即卸载分区,使用`extundelete`恢复ext3/ext4文件(命令如`extundelete /dev/sda1 --restore-all`),但成功率取决于删除后是否写入新数据[^4][^5]。 #### 总结 `rm -fr *`是一个高效的清理工具,但其破坏性极强。**务必在安全目录中使用,并优先实施防护配置**。误操作后,停止写操作并尝试数据恢复工具,但预防远胜于补救[^1][^3][^5]。
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值