La plupart des commandes POSIX qui ont l' option récursive répertoire traversal ( ls
, chmod
, chgrp
, chmod
, cp
, rm
) ont -R
pour cela.
rm
a également -r
parce que c'est ce qu'il était à l'origine, bien avant POSIX.
Maintenant, le comportement varie lorsque des liens symboliques sont trouvés en descendant dans l’arbre. POSIX a essayé de rendre les choses cohérentes en ajoutant les options -L
/ -H
/ P
pour donner à l’utilisateur une chance de décider quoi faire avec les liens symboliques, en laissant la valeur par défaut lorsque aucun n’est fourni.
POSIX grep
n'a pas -r
ou -R
.
GNU grep
n'avait initialement ni l'un ni l'autre. -r
a été ajouté en 1998. Cela faisait suite aux liens symboliques.
-R
a été ajouté comme synonyme en 2001 pour assurer la cohérence avec les autres services publics. Cela suivait toujours les liens symboliques.
En 2012 (grep 2.12), il a -r
été modifié afin de ne plus suivre les liens symboliques, probablement parce que -L
, -H
étaient déjà utilisés pour autre chose.
Les BSD grep
étaient basés sur GNU grep pendant longtemps. Certains d'entre eux ont réécrit leurs propres et ont gardé plus ou moins la compatibilité avec GNU grep
. Apple OS / X a abordé le problème du lien symbolique différemment. -r
et -R
sont les mêmes et ne suivent pas les liens symboliques. Il y a une -S
possibilité mais qui agit comme chmod
/ cp
/ find
l » -L
option de suivre les liens symboliques.