Linux 什么';rm-rf和rm-r的区别是什么?

Linux 什么';rm-rf和rm-r的区别是什么?,linux,command,rm,Linux,Command,Rm,在linux中,“rm-rf”和“rm-r”之间的区别是什么?它们似乎都做相同的事情(删除整个目录) 下面是我为测试它而运行的几个命令: mohammad@mohammad-ThinkPad-E570:~/testerr$ ls mohammad@mohammad-ThinkPad-E570:~/testerr$ mkdir foo1 foo2 mohammad@mohammad-ThinkPad-E570:~/testerr$ touch foo1/main.java foo2/main.ja

在linux中,“rm-rf”和“rm-r”之间的区别是什么?它们似乎都做相同的事情(删除整个目录)

下面是我为测试它而运行的几个命令:

mohammad@mohammad-ThinkPad-E570:~/testerr$ ls
mohammad@mohammad-ThinkPad-E570:~/testerr$ mkdir foo1 foo2
mohammad@mohammad-ThinkPad-E570:~/testerr$ touch foo1/main.java foo2/main.java
mohammad@mohammad-ThinkPad-E570:~/testerr$ tree
.
├── foo1
│   └── main.java
└── foo2
    └── main.java

2 directories, 2 files
mohammad@mohammad-ThinkPad-E570:~/testerr$ rm -r foo1
mohammad@mohammad-ThinkPad-E570:~/testerr$ ls
foo2
mohammad@mohammad-ThinkPad-E570:~/testerr$ rm -rf foo2
mohammad@mohammad-ThinkPad-E570:~/testerr$ tree
.

0 directories, 0 files
mohammad@mohammad-ThinkPad-E570:~/testerr$ 

rm-rf
忽略不存在的文件,并且在删除之前从不提示

rm-r
递归删除目录及其内容。
-f
选项用于删除提示

-r
选项用于递归工作

假设我们有一个名为
stackoverflow
的文件夹,其内容为
image.jpg otherimage.jpg mydog.doc

输入
rm-r stackoverflow
后,终端可能会说:
rm:down to write protected directory'stackoverflow'?
如果您说
y
,它会问您一些新问题

rm: remove write-protected regular file stackoverflow/image.jpg'?
rm: remove write-protected regular file stackoverflow/otherimage.jpg'?
rm: remove write-protected regular file stackoverflow/mydog.doc'?
基本上,它会询问每个步骤是否要执行此操作

现在让我们尝试使用
rm-rf stackoverflow


这次将不会提出任何问题,文件夹中的所有内容现在都被删除。

当您选中
man rm
时,您学到了什么?在
rm-r
rm-rf
命令之前尝试
chmod a-w foo1/main.java
,您很可能会看到主要区别。