Pourquoi le -r drapeau récursif est-il capital dans certains et inférieur dans d'autres?


8

Certaines commandes utilisent des minuscules rpour leur indicateur récursif tandis que d'autres utilisent une majuscule R.

cp -r foo/ bar/

chmod -R 777 foobar/

Y a-t-il une raison à cela?

Réponses:


8

cp accepte en fait les deux.

De cp --help:

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

Par souci de cohérence, la plupart des commandes shell utilisent -Rcomme indicateur récursif , probablement parce qu'elles imitent le comportement de ls.

De ls --help:

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

1
Aussi, chmod -rest déjà utilisé pour signifier autre chose que récursif!
Dark Android

3

Je ne suis pas sûr qu'il y ait une raison spécifique à l'incohérence autre que le fait que les programmeurs peuvent choisir d'utiliser les indicateurs qu'ils souhaitent.

Je ne pense pas qu'il existe une quelconque forme de norme pour cela, il est donc difficile de s'attendre à ce que tout le monde emboîte le pas.


7
La raison serait probablement historique. Dans le plus grand monde Unix qui remonte aux années 70, les commutateurs récursifs n'étaient pas toujours là, et certaines commandes avaient déjà utilisé -r comme commutateur. Parce que les commandes sont souvent utilisées dans les scripts, il y a une énorme inertie associée à la compatibilité descendante, donc ces choses ne changent jamais fondamentalement - vous pouvez ajouter des options à un programme, mais malheur au développeur qui essaie de changer une fonctionnalité établie de longue date.
Stephanie
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.