rm -rf 和 rm -r 有什么区别?

what's the difference between rm -rf and rm -r?

在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 递归删除目录及其内容。 https://www.computerhope.com/unix/urm.htm

-f 有删除提示的选项。

-r 选项可以递归工作。

假设我们有一个名为 Whosebug 的文件夹,其中包含 image.jpg otherimage.jpg mydog.doc

的内容

输入 rm -r Whosebug 终端可能会说:rm: descend into write-protected directory 'Whosebug'? 如果你说 y 它会问你新的问题。

rm: remove write-protected regular file Whosebug/image.jpg'?
rm: remove write-protected regular file Whosebug/otherimage.jpg'?
rm: remove write-protected regular file Whosebug/mydog.doc'?

基本上每一步都会询问要不要做这个操作

现在让我们尝试 rm -rf Whosebug

这次不会再问任何问题,文件夹内的所有内容现已删除。