"rm -rf "和 "rm -rf /"的区别
一旦你执行了上述"rm -rf /" 或者"rm -rf /*"命令,会删除Linux根目录下的所有文件,直接导致服务器瘫痪
1、rm 命令是remove 的缩写,Linux中 rm
命令的功能为删除一个目录中的一个或多个文件或目录,它也可以将某个目录及其下的所有文件及子目录均删除。对于链接文件,只是删除了链接,原有文件均保持不变。
2、rm是一个危险的命令,使用的时候要特别当心,在执行rm之前最好先确认一下在哪个目录,到底要删除什么东西。
"rm -rf "
命令会删除当前目录下的所有文件和子目录,但不会删除根目录或其它任何目录。因此,这个命令比较安全,因为它不会影响到整个系统的运行和稳定性。但是请注意,在某些情况下,这个命令可能会误删一些重要的文件,特别是如果你正在使用通配符()来删除一些不需要的文件时。
"rm -rf /*"
命令会删除根目录下的所有文件和子目录,这包括系统中所有的文件和目录。因此,这个命令会导致系统崩溃,因为它会删除一些系统必需的文件和目录,这可能会导致无法启动系统或者系统功能受到极大的破坏。这个命令是非常危险的,除非你知道自己在做什么,否则不要使用。
总之,"rm -rf " 命令只会删除当前目录下的文件和目录,**而"rm -rf /" 命令会删除整个系统中的所有文件和目录。**所以,请务必小心使用这些命令,确保你知道自己在做什么,并且非常小心。
常用范例
例一:删除文件系统会先询问是否删除
命令:rm 文件名
输入rm test.txt命令后,系统会询问是否删除,输入y后就会删除文件,不想删除则输入n。
java
[root@localhost games]# ll
总用量 0
-rw-r--r--. 1 root root 0 5月 13 11:19 test.txt
[root@localhost games]# rm test.txt
rm:是否删除普通空文件 'test.txt'?y
[root@localhost games]# ll
总用量 0
例二:强行删除文件系统不再提示
命令:rm -f 文件名
java
[root@localhost games]# ll
总用量 0
-rw-r--r--. 1 root root 0 5月 13 11:23 test1.txt
[root@localhost games]# rm -f test1.txt
[root@localhost games]# ll
总用量 0
例三:删除多个文件并在删除前逐一询问确认
命令: rm -i *.txt
java
[root@localhost games]# ll
总用量 0
-rw-r--r--. 1 root root 0 5月 13 11:25 test1.txt
-rw-r--r--. 1 root root 0 5月 13 11:25 test2.txt
[root@localhost games]# rm -i *.txt
rm:是否删除普通空文件 'test1.txt'?y
rm:是否删除普通空文件 'test2.txt'?y
[root@localhost games]# ll
总用量 0
例四:将 test1子目录及子目录中所有文件都删除
命令: rm -r test1
执行 rm -r命令如果该目录里面有文件,会首先进入该目录,把文件删除后再删除该目录。(先删除目录中的文件或子目录再删除该目录)
执行rm -rf 命令时则不会一一确认是否删除。
java
[root@localhost test]# ll
总用量 0
drwxr-xr-x. 2 root root 23 5月 13 14:06 test1
drwxr-xr-x. 2 root root 6 5月 13 14:06 test2
[root@localhost test]# rm -r test1
rm:是否进入目录'test1'? y
rm:是否删除普通空文件 'test1/test1.txt'?y
rm:是否删除目录 'test1'?y
[root@localhost test]# ll
总用量 0
drwxr-xr-x. 2 root root 6 5月 13 14:06 test2
例五:删除以 t 开头的文件(不能删除目录)
命令: rm -- t
java
[root@localhost test]# ll t*
总用量 0
-rw-r--r--. 1 root root 0 5月 13 14:15 t
-rw-r--r--. 1 root root 0 5月 13 14:16 t1
drwxr-xr-x. 2 root root 6 5月 13 14:06 test2
[root@localhost test]# rm -- t*
rm:是否删除普通空文件 't'?y
rm:是否删除普通空文件 't1'?y
rm: 无法删除'test2': 是一个目录
命令:rm ./t
java
[root@localhost test]# ll t*
总用量 0
-rw-r--r--. 1 root root 0 5月 13 14:20 t2
-rw-r--r--. 1 root root 0 5月 13 14:20 t3
drwxr-xr-x. 2 root root 6 5月 13 14:06 test2
[root@localhost test]# rm ./t*
rm:是否删除普通空文件 './t2'?y
rm:是否删除普通空文件 './t3'?y
rm: 无法删除'./test2': 是一个目录
[root@localhost test]# ll t* 总用量 0
drwxr-xr-x. 2 root root 6 5月 13 14:06 test2
例六:删除当前目录下除隐含文件外的所有文件和子目录(提醒是否删除,二次确定)
java
rm -r *
例七:删除某一指定目录下除隐含文件外的所有文件和子目录(强制删除不提醒)
java
rm -rf 目录/*
但是程序员应该养成好的习惯,慎用rm命令,用mv命令代替
推荐mv实现步骤:
1、打开一个终端,输入命令:vim ~/.bashrc
2、在打开的文件最后加入如下代码:
java
mkdir -p ~/.trash #在家目录下创建一个.trash文件夹(隐藏文件,ls -a 查看)
alias rm=del #使用别名del代替rm
del() #函数del,作用:将rm命令修改为mv命令
{
mv $@ ~/.trash/
}
cleardel() #函数cleardel,作用:清空回收站.trash文件夹,y或Y表示确认,n表示取消
{
read -p "clear sure?[Input 'y' or 'Y' to confirm. && Input 'n' to cancel.]" confirm
[ $confirm == 'y' ] || [ $confirm == 'Y' ] && /bin/rm -rf ~/.trash/*
}
3、保存修改并退出
4、使设置生效:在终端下输入source ~/.bashrc。
5、如果没有生效,请关闭终端重新打开也可以,本步骤同4步骤(source - ~/.bashrc)作用相同。至此,已经设置完成,可以在终端下进行测试了。
测试结果(命令总结)
1、删除文件
del [文件名]
rm [文件名]
del *
rm *
2、清空回收站(即:清空.trash文件夹)
cleardel
注:该命令会有一个是否删除确认,y或Y表示确认删除,n表示取消删除。
注:rm命令已经删除,所以要彻底删除文件的话,可以先del删除文件到垃圾箱,然后进入~/.trash文件夹使用cleardel命令来彻底清除垃圾箱里的所有文件。