在 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$
Run Code Online (Sandbox Code Playgroud)
-f
选项是删除提示。
-r
选项是递归工作。
比方说,我们有一个文件夹命名stackoverflow
与内容image.jpg otherimage.jpg mydog.doc
输入rm -r stackoverflow
终端可能会说:rm: descend into 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'?
Run Code Online (Sandbox Code Playgroud)
基本上,它会询问您是否要执行此操作的每一步。
现在让我们尝试 rm -rf stackoverflow
这次不会再问任何问题,文件夹中的所有内容现在都被删除了。