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?

Lee Quarella
fonte

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
Dennis
fonte
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.

Dario Russo
fonte
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