2.34 删除文件

rm

rm命令(remove的简写)用来删除文件。这条命令会彻底地删除文件,文件将不复存在。Linux命令行可没有“垃圾箱”或“回收站”之类的东西。你正在走钢丝,一不小心掉下来,就完蛋了。

好吧,这样说有点极端了。shell缺少一个恢复删除文件的命令,这的确是真的。但是如果你错误地删除了文件,也并不意味着完全没有办法。如果你在意识到犯错的瞬间就马上停止使用机器,如果操作系统还没有重写被删除文件所占用的扇区,再加上如果你能够成功地使用某些相当复杂的文件恢复软件,还是有可能恢复误删除的文件的。但是这个过程一点儿乐趣都没有,整个过程都会让你坐如针毡。最好一开始就小心些。

提示 很多人都在尝试为rm命令提供某种安全机制,包括将rm命令重新映射或替换为一个临时的“垃圾箱”(www.comwt.com/open_source/projects/trashcan/);在shell中增加一个“垃圾箱”(www.comwt.com/open_source/projects/trashcan/);创建一个新的命令(如trash)来取代rmwww.ms.unimelb.edu.au/~jrlooker/shell.html#trash)。

另一方面,如果你想确保绝对没有人能恢复你删除的文件,即便是顶级高手也不可以恢复,请使用shred命令来代替rm命令。shred命令会重写文件多达25次,所以再想恢复被删除的文件是不可能的事。但是在使用shred命令之前应该阅读一下man page,因为它的成功率在很大程度上依赖于你正在使用的文件系统的类型。

使用rm命令很简单,甚至有些人可能会认为太容易了。

  1. $ pwd
  2. /home/scott/libby/by_pool/lieberman_pool
  3. $ ls
  4. pool_01.jpg pool_03.jpg
  5. pool_01.jpg_bak pool_03.jpg_bak
  6. $ rm pool_01.jpg_bak
  7. $ ls
  8. pool_01.jpg pool_03.jpg pool_03.jpg_bak