¿Por qué el capital -r bandera recursiva en algunos y menor en otros?

8

Algunos comandos usan minúsculas rpara su bandera recursiva, mientras que otros usan una letra mayúscula R.

cp -r foo/ bar/

chmod -R 777 foobar/

¿Hay alguna razón para esto?

Lee Quarella
fuente

Respuestas:

8

cp en realidad acepta ambos.

De cp --help:

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

Para mantener la coherencia, la mayoría de los comandos de shell se utilizan -Rcomo un indicador recursivo , probablemente porque imitan el comportamiento de ls.

De ls --help:

  -r, --reverse              reverse order while sorting
  -R, --recursive            list subdirectories recursively
Dennis
fuente
1
Además, ¡ chmod -rya se usa para significar algo más que recursivo!
Darth Android
3

No estoy seguro de que haya alguna razón específica para la inconsistencia que no sea que los programadores pueden elegir usar las banderas que quieran.

No creo que haya ningún estándar para eso, así que es difícil esperar que todos sigan su ejemplo.

Dario Russo
fuente
77
La razón probablemente sería histórica. En el mundo más grande de Unix, que se remonta a los años 70, los interruptores recursivos no siempre estaban allí, y algunos comandos ya habían utilizado -r como interruptor. Debido a que los comandos a menudo se usan dentro de los scripts, existe una tremenda inercia asociada con la compatibilidad con versiones anteriores, por lo que estas cosas básicamente nunca cambian: puede agregar opciones a un programa, pero ¡ay de ser el desarrollador que intenta cambiar la funcionalidad establecida hace mucho tiempo!
Stephanie