“rm -rf *“和 “rm -rf /*“的区别

"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命令来彻底清除垃圾箱里的所有文件。

相关推荐
余厌厌厌21 分钟前
go语言学习 第9章:映射(Map)
服务器·学习·golang
waving-black39 分钟前
利用frp和腾讯云服务器将内网暴露至外网(内网穿透)
linux·服务器·腾讯云·frp·内网穿透
stormsha1 小时前
Linux中su与sudo命令的区别:权限管理的关键差异解析
linux·运维·服务器·鸿蒙系统·ux·batch命令
筏.k2 小时前
grep、wc 与管道符快速上手指南
linux
Johny_Zhao2 小时前
华为MAAS、阿里云PAI、亚马逊AWS SageMaker、微软Azure ML各大模型深度分析对比
linux·人工智能·ai·信息安全·云计算·系统运维
CodeOfCC2 小时前
c语言 封装跨平台线程头文件
linux·c语言·windows
科文小白狼2 小时前
Linux下VSCode开发环境配置(LSP)
linux·vscode·里氏替换原则·lsp
养意2 小时前
git提交代码和解决冲突修复bug
git·bug
jugt4 小时前
CentOS 7.9安装Nginx1.24.0时报 checking for LuaJIT 2.x ... not found
linux·运维·centos
多多*4 小时前
LUA+Reids实现库存秒杀预扣减 记录流水 以及自己的思考
linux·开发语言·redis·python·bootstrap·lua