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.