rm命令可以删除一个目录中的一个或多个文件或目录,也可以将某个目录及其下属的所有文件及其子目录均删除掉。对于链接文件,只是删除整个链接文件,而原有文件保持不变。
注意:使用rm命令要格外小心。因为一旦删除了一个文件,就无法再恢复它。所以,在删除文件之前,最好再看一下文件的内容,确定是否真要删除。rm命令可以用-i选项,这个选项在使用文件扩展名字符删除多个文件时特别有用。使用这个选项,系统会要求你逐一确定是否要删除。这时,必须输入y并按Enter键,才能删除文件。如果仅按Enter键或其他字符,文件不会被删除。
语法
rm (选项)(参数)
选项
-d:直接把欲删除的目录的硬连接数据删除成0,删除该目录;
-f:强制删除文件或目录;
-i:删除已有文件或目录之前先询问用户;
-r或-R:递归处理,将指定目录下的所有文件与子目录一并处理;
--preserve-root:不对根目录进行递归操作;
-v:显示指令的详细执行过程。
参数
文件:指定被删除的文件列表,如果参数中含有目录,则必须加上-r或者-R选项。
常用示例
1、删除文件(默认会询问)
[root@CTU1000094955 exceltemplates]# rm OOOO.tar rm: remove regular file ?.OOO.tar?. y [root@CTU1000094955 exceltemplates]# ls temp test1.xlsx test2.xlsx testfolder xxx.tar xxx.tar.bz2 xxx.tar.gz xxx.tar.Z
2、强行删除不询问
[root@CTU1000094955 exceltemplates]# rm -f test1.xlsx [root@CTU1000094955 exceltemplates]# ls temp test2.xlsx testfolder xxx.tar xxx.tar.bz2 xxx.tar.gz xxx.tar.Z
3、逐一询问删除
[root@CTU1000094955 exceltemplates]# rm -i *.xlsx rm: remove regular file ?.est2.xlsx?. y rm: remove regular file ?.est3.xlsx?. y [root@CTU1000094955 exceltemplates]# ls temp testfolder xxx.tar xxx.tar.bz2 xxx.tar.gz xxx.tar.Z
4、删除目录及子目录
[root@CTU1000094955 exceltemplates]# rm -rf testfolder [root@CTU1000094955 exceltemplates]# ls temp xxx.tar xxx.tar.bz2 xxx.tar.gz xxx.tar.Z
5、删除以 -f 开头的文件
命令:rm -- -f
[root@localhost test]# touch -- -f [root@localhost test]# ls -- -f -f[root@localhost test]# rm -- -f rm:是否删除 一般空文件 “-f”? y [root@localhost test]# ls -- -f ls: -f: 没有那个文件或目录
也可以使用下面的操作步骤:
[root@localhost test]# touch ./-f [root@localhost test]# ls ./-f ./-f[root@localhost test]# rm ./-f rm:是否删除 一般空文件 “./-f”? y
6、自定义回收站功能
命令:myrm(){ D=/tmp/$(date +%Y%m%d%H%M%S); mkdir -p $D; mv "$@" $D && echo "moved to $D ok"; }
[root@CTU1000094955 exceltemplates]# myrm(){ D=/tmp/$(date +%Y%m%d%H%M%S); mkdir -p $D; mv "$@" $D && echo "moved to $D ok"; } [root@CTU1000094955 exceltemplates]# alias rm='myrm' [root@CTU1000094955 exceltemplates]# touch 3.log [root@CTU1000094955 exceltemplates]# ll total 88 -rw-r--r-- 1 root root 0 Nov 29 09:47 3.log -rw-r----- 1 root root 43216 Nov 29 09:43 test1.xlsx -rw-r----- 1 root root 43216 Nov 29 09:43 Test_CustomerDirect.xlsx [root@CTU1000094955 exceltemplates]# rm * moved to /tmp/20171129094735 ok [root@CTU1000094955 exceltemplates]# ls /tmp/20171129094735/ 3.log test1.xlsx Test_CustomerDirect.xlsx
Stay hungry,stay foolish !