Большинство команд POSIX , которые имеют рекурсивный вариант обхода каталога ( ls, chmod, chgrp, chmod, cp, rm) есть -Rдля этого.
rmтакже -rпотому, что так было изначально, задолго до POSIX.
Теперь поведение меняется, когда в ходьбе по дереву обнаруживаются символические ссылки. POSIX пытался сделать вещи согласованными, добавив опции -L/ -H/ P, чтобы дать пользователю возможность решить, что делать с символическими ссылками, оставляя значение по умолчанию, если ни одна из них не указана без указания.
POSIX grepне имеет -rили -R.
У GNU grepизначально не было ни того, ни другого. -rбыл добавлен в 1998 году. Это были следующие символические ссылки.
-Rбыл добавлен как синоним в 2001 году для согласованности с другими утилитами. Это все еще следовало за символическими ссылками.
В 2012 году (grep 2.12) он -rбыл изменен, и теперь он больше не следует символическим ссылкам, возможно потому -L, что он -Hуже использовался для чего-то другого.
BSD grepдолгое время были основаны на GNU grep. Некоторые из них переписали свои собственные и сохранили более или менее совместимость с GNU grep. Apple OS / X решает проблему символической ссылки по-другому. -rи -Rто же самое и не переходите по символическим ссылкам. Там есть -Sвариант , однако , что действует как chmod/ cp/ find«s -Lварианта следовать по символическим ссылкам.