Linux很差习惯之# rm -rf *

2021年09月15日 阅读数:3
这篇文章主要向大家介绍Linux很差习惯之# rm -rf *,主要内容包括基础应用、实用技巧、原理机制等方面,希望对大家有所帮助。

        若是你在Linux中保持各类好的习惯,你不会直观的感受到有什么好处,由于linux都正如你所想的那样工做的。若是你在Linux中有些很差的习惯,你会很快的发现它的恶果,有些是致命的。linux

很差习惯之#rm -rf *
相信不少前辈都这样对新人说过rm -rf / 的后果,这简直就是让系统自孽致死。千叮咛万嘱咐,在运行rm -rf命令以前,必定要反复确认当前路径,Enter键一按下去就没有回头路,就算你手再快的按下了Ctrl+C,也会有数据被删掉了。sql

可是我想说的是对老手来讲也很容易忽略的问题,rm -rf *命令。
你们都会常常写一些脚原本自动完成些任务。看下面几句代码:bash

  
  
  1. #/bin/bash  
  2. cd /opt/softData/.Trash  
  3. rm -rf *  
  4.  

这两行代码要完成的任务是删除/opt/softData/.Trash文件夹下的全部文件。不知道你有没有看出其中危险的地方。
若是/opt/softData/.Trash这个文件夹存在,rm -rf *语句会按你所想的删掉数据。
但若是/opt/softData/.Trash这个文件夹不存在呢?rm -rf *语句也会执行成功,但删掉的数据让你抓狂,你抓狂的程度取决与你在那个目录运行这个脚本。假设很不幸运的是在根/目录下运行的这段脚本,那就自求多福,没人能帮你了,等于你运行了rm -rf /命令把系统自删除。ide

由于/opt/softData/.Trash这个文件夹不存在,cd /opt/softData/.Trash语句会报错 -bash: cd: /opt/softData/.Trash: no such file or directory, 但你并没cd到目标目录,留在了当前目录,而rm -rf *才无论上面语句成功或失败,照样执行。spa

好的bash习惯是:it

1:只要在bash中要rm东西,都应该放在判断体中,如:class

  
  
  1. #/bin/bash  
  2. if cd /opt/softData/.Trash   
  3.   then 
  4.     rm -rf *  
  5.   else 
  6.     .......  
  7.     .......  
  8. fi  


2:只要是用*来表示删除全部东西,都应该在*前面加上全路径,如:file

  
  
  1. #/bin/bash  
  2. cd /opt/softData/.Trash  
  3. rm -rf /opt/softData/.Trash/*   


Linux系统管理中须要的是反复确认,而不能有一点马虎,有些时候脚本并不会按你像的那样执行,就像上面说到的在根目录下执行那个脚本,等你发现系统被删完了都找不出问题出在哪里。数据