linux - rm -rf 和 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$
解决方案
-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'?
基本上,它会询问您是否要执行此操作的每一步。
现在让我们尝试rm -rf stackoverflow
这次不会询问任何问题,文件夹内的所有内容现在都已删除。
推荐阅读
- node.js - 在 Azure 存储 [REST] [Azure Blob] 中对 PUT Blob 的 REST api 调用中的身份验证失败
- android - 未知验证 VALIDATE_APP_MESSAGE_DDA_NOT_ACCEPTED
- python - 如何使用 Google 的 CP-SAT 求解器计算“AddAbsEquality”或“AddMultiplicationEqualit”以进行非线性优化?
- c++ - 错误:数组下标的无效类型“int [int]”|
- python - 在涉及 Return 的 Python 函数中重用逻辑
- javascript - react.component 等效于样式化的组件返回
- wordpress - 如何生成 WordPress 插件“立即更新”网址?
- javascript - 需要暂停一切,直到网络工作者回复消息?
- sql - SAS 联合来自具有相似名称的数据集的不同记录
- python - 未能在 python 中为给定的正整数 n 按预期打印模式