2.39 删除文件和非空的目录
rm -Rf
删除非空目录,还有一种更为简单的方法:把-R
(或--recursive
)和-f
(或--force
)选项结合起来使用。-r
选项告诉rm
命令进入到它发现的每个子目录中去删除文件,而-f
选项只是告诉rm
命令完成任务但不要因为些细节问题(比如文件夹非空)而烦扰用户。
$ pwd
/home/scott/libby/by_pool
$ ls
pool_02.jpg lieberman_pool lieberman_pool_bak
$ ls lieberman_pool_bak
pool_01.jpg pool_03.jpg
pool_01.jpg_bak pool_03.jpg_bak
$ rm -Rf lieberman_pool_bak
$ ls
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
命令时一定要保持高度警惕。