A maioria dos comandos POSIX que possuem a opção de passagem de diretório recursiva ( ls
, chmod
, chgrp
, chmod
, cp
, rm
) tem -R
para isso.
rm
também tem -r
porque é o que era inicialmente.
Agora, o comportamento varia quando os links simbólicos são encontrados ao percorrer a árvore. O POSIX tentou tornar as coisas consistentes adicionando as opções -L
/ -H
/ P
para dar ao usuário uma chance de decidir o que fazer com links simbólicos deixando o padrão quando nenhum é fornecido sem especificação.
POSIX grep
não possui -r
ou -R
.
GNU grep
inicialmente não tinha nenhum. -r
foi adicionado em 1998. Isso estava seguindo os links simbólicos.
-R
foi adicionado como sinônimo em 2001 para consistência com os outros utilitários. Isso ainda estava seguindo links simbólicos.
Em 2012 (grep 2.12), -r
foi alterado, de modo que deixou de seguir os links simbólicos, possivelmente porque -L
, -H
já foram usados para outra coisa.
BSDs grep
foram baseados no GNU grep por um longo tempo. Alguns deles reescreveram seus próprios e mantiveram mais ou menos compatibilidade com o GNU grep
. O Apple OS / X solucionou o problema do symlink de maneira diferente. -r
e -R
são os mesmos e não seguem links simbólicos. No entanto, existe uma opção -S
que age como chmod
/ cp
/ find
-L
para seguir links simbólicos.