为什么在某些情况下使用-r递归标记资本而在其他情况下使用较低的资本?


8

有些命令r的递归标志使用小写字母,而另一些命令则使用大写字母R

cp -r foo/ bar/

chmod -R 777 foobar/

是否有一个原因?

Answers:


8

cp 实际上接受两者。

来自cp --help

  -R, -r, --recursive          copy directories recursively

为了保持一致性,大多数shell命令都将其-R用作递归标志,这可能是因为它们模仿的行为ls

来自ls --help

  -r, --reverse              reverse order while sorting
  -R, --recursive            list subdirectories recursively

1
另外,chmod -r已经用来表示递归以外的东西!
达斯Android

3

除了程序员可以选择使用他们想要的任何标志之外,我不确定是否有导致这种不一致的任何特定原因。

我认为没有任何形式的标准,因此很难期望所有人都效仿。


7
原因可能是历史原因。在可以追溯到70年代的更大的Unix世界中,递归开关并不总是存在的,并且某些命令已经使用-r作为开关。由于命令通常在脚本中使用,因此向后兼容性会带来极大的惯性,因此这些事情基本上不会改变-您可以向程序中添加选项,但是尝试更改已建立的功能的开发人员会感到痛苦。
Stephanie 2012年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.