【发布时间】:2019-10-26 17:09:55
【问题描述】:
标题是描述。
我只是想知道rm -r 和rm -R 之间有什么区别。
Linux 的 man 描述似乎完全一样(还有一个,--recursive),但是很多人使用 -r 和 -R 就像它们不一样。
所以我不仅想知道它的功能差异,还想知道它的实际(或传统)差异。
谁能告诉我这件事?
【问题讨论】:
标题是描述。
我只是想知道rm -r 和rm -R 之间有什么区别。
Linux 的 man 描述似乎完全一样(还有一个,--recursive),但是很多人使用 -r 和 -R 就像它们不一样。
所以我不仅想知道它的功能差异,还想知道它的实际(或传统)差异。
谁能告诉我这件事?
【问题讨论】:
手册页提到:
-r, -R, --recursive
remove directories and their contents recursively
所以,至少在我的机器上是一样的。
【讨论】:
都一样。
# rm --help | grep directories.
-r, -R, --recursive remove directories and their contents recursively
By default, rm does not remove directories. Use the --recursive (-r or -R)
【讨论】:
根据 rm 的 OpenGroup / POSIX 规范,-r 和 -R 选项是等效的。
来源:https://pubs.opengroup.org/onlinepubs/9699919799/utilities/rm.html
这可能适用于所有现代 UNIX / Linux 变体。
但并不总是这样:
-R 选项在 v5 UNIX 中不存在;参见here,第 97 页。-r 的含义相同。 添加-R 的原因是为了与其他使用-R 表示递归的命令兼容。 (例如chmod ... 其中-r 表示“删除读取权限”。)
【讨论】:
这两个选项是等价的,默认情况下,rm不删除目录。通过使用 --recursive(-r 或 -R)选项也可以删除每个列出的目录及其所有内容。
【讨论】: