Por que a bandeira -r recursiva é maiúscula em algumas e menor em outras?


8

Alguns comandos usam letras minúsculas rpara seu sinalizador recursivo, enquanto outros usam letras maiúsculas R.

cp -r foo/ bar/

chmod -R 777 foobar/

Existe uma razão para isso?

Respostas:


8

cp na verdade aceita ambos.

De cp --help:

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

Por consistência, a maioria dos comandos do shell usa -Rcomo sinalizador recursivo , provavelmente porque imitam o comportamento de ls.

De ls --help:

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

11
Além disso, chmod -rjá é usado para significar algo diferente de recursivo!
Darth Android

3

Não tenho certeza de que exista algum motivo específico para a inconsistência, a não ser que os programadores possam optar por usar qualquer sinalizador que desejarem.

Eu não acho que exista qualquer forma de padrão para isso, então é difícil esperar que todos sigam o exemplo.


7
O motivo provavelmente seria histórico. No mundo maior do Unix, que remonta aos anos 70, as opções recursivas nem sempre estavam lá, e alguns comandos já haviam usado o -r como opção. Como os comandos são frequentemente usados ​​nos scripts, há uma tremenda inércia associada à compatibilidade com versões anteriores. Portanto, essas coisas basicamente nunca mudam - você pode adicionar opções a um programa, mas você é o desenvolvedor que tenta alterar a funcionalidade estabelecida há muito tempo.
21712 Stephanie
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.