2.39 删除文件和非空的目录

rm -Rf

删除非空目录,还有一种更为简单的方法:把-R(或--recursive)和-f(或--force)选项结合起来使用。-r选项告诉rm命令进入到它发现的每个子目录中去删除文件,而-f选项只是告诉rm命令完成任务但不要因为些细节问题(比如文件夹非空)而烦扰用户。

  1. $ pwd
  2. /home/scott/libby/by_pool
  3. $ ls
  4. pool_02.jpg lieberman_pool lieberman_pool_bak
  5. $ ls lieberman_pool_bak
  6. pool_01.jpg pool_03.jpg
  7. pool_01.jpg_bak pool_03.jpg_bak
  8. $ rm -Rf lieberman_pool_bak
  9. $ ls
  10. pool_02.jpg lieberman_pool

噢!它是删除目录及其中所有文件和子目录的一种稳妥的办法。

警告 rm–Rf命令有可能损坏你的重要文件和系统。

经典的Linux警告就是,当作为root登录时,不要输入rm -Rf /*命令。这样你将删除你的系统。你会觉得很糟糕,觉得这样做很傻。

一般来说,在rm–Rf命令中使用通配符要小心谨慎。rm -Rf libby*rm -Rf libby *之间有着巨大的差异。前者会删除工作目录中以libby开头的所有东西,后者会删除任何名称恰好是libby的文件或文件夹,然后再删除目录中的所有其他东西。

也可能在无意间你就闯下了大祸,原本你想输入rm -Rf ~/libby/*,但是手指一不留神就输错了命令,告诉shell执行rm -Rf ~/libby /*。首先是~/libby目录被删除了,然后你的文件系统被迅速删除。

有一条很棒的小建议:永远不要输入rm -Rf .*/*删除以点号.作为名称开始的目录,因为这也匹配..,最终将删除当前工作目录的上级目录的所有东西。哎呀,糟了!

再重申一次:作为普通用户,一定要慎用rm –Rf命令。作为root用户使用rm–Rf命令时一定要保持高度警惕。