Почему большинство команд * NIX my (опыт работы с Linux в основном и редкое столкновение с FreeBDS) имеют такое "безумное" (не интуитивное) поведение по умолчанию, т.е. ОЧЕНЬ отличается от того, что будет делать "эквивалентное" действие GUI.
Наиболее очевидным примером является команда копирования файла, cp
, которая по умолчанию в Linux не делает (1) рекурсивное копирование каталогов (очевидно, нелогично для тех, кто приходит в оболочку из-за того, что ранее использовал графический интерфейс, где копирование / вставка копирует каталог и все остальное в it) и (2) следуйте симлинкам (!!) вместо того, чтобы просто копировать их, как они есть (опять же, как и ожидал бы любой пользователь GUI). Таким образом, "нормальная" версия cp
которую я представляю по умолчанию, выглядит примерно так: cp -r
.
(И опять же, это не "предвзятая" перспектива, уникальная для тех, кто раньше использовал только графический интерфейс). copy
команды DOS, например, делает то, что вы ожидаете, как эквивалент cp -r
или cp -ra
...)
Другой очевидный пример - это rm
когда rm -ri
- это то, что любой не-shell-geek ожидает по умолчанию.
И это продолжается с 90% всех команд * NIX, где получить то, что вы интуитивно ожидаете, по умолчанию, это то, чего вы достигнете, добавив еще несколько опций. И дело не в том, что опытный пользователь ожидает, что он станет по умолчанию, не то, что делает начинающий пользователь, для таких вещей, как cp
и rm
, очевидно, что 99% времени cp -r
и rm -r
- это то, что вам нужно. И дело не в том, что для обратной совместимости нужно просто так оставаться, так как вы можете просто создать новую оболочку и сохранить #/usr/bin/oldshell
или что-то для старой.
Итак, еще раз, вопрос заключается в том, почему стандартные параметры / переключатели команд оболочки * NIX настолько далеки от того, что вы ожидаете интуитивно ожидать? Где я могу найти исторические аргументы о том, как обстоят дела (даже в анекдотических целях), и какова причина, кроме отвратительной обратной совместимости, для текущего положения вещей?
Нашел это на unix.stackexchange, который на самом деле отвечает на МНОГИЕ мои вопросы ...