Какое, если есть, соглашение об именах использовался для стандартных команд Unix?

Конечно, есть POSIX-совместимое решение проблемы:

найти dir1 - имя '*.png' -exec sh -c 'cp "$@" dir2' null {} +

Нет необходимости использовать нестандартные функции, специфичные для производителя.

BTW: AFAIK, функция execplus была представлена в 1989 году Дэвидом Корном во время работы на SVr4. Важная справочная информация: POSIX не определяет новые возможности, а просто стандартизирует существующие решения, так что если стандарт POSIX противоречит решению, которое было основным, то POSIX обычно ошибается.

Есть известный недавний пример: waitid() была также представлена SVr4 в 1989 году и определяет, что все 32 бита из кода выхода должны быть доступны родителю. Стандарт SUSv2 (с 1997 года) был корректен, но по неизвестным причинам в более поздних версиях упоминалось, что код выхода должен быть замаскирован под 0xFF. Недавно было обнаружено, что это ошибка POSIX.

7
26.04.2018, 09:30
1 ответ

Unix был создан хакерами для собственного использования. Короткие имена означают меньше печатного текста, что имена «действительно мнемоничны для использования случайными пользователями» (, т. е. называть их «копией», «списком -файлов», «изменить -каталог» или что-то еще )было совершенно исключено. Таким образом, очень распространенные команды имеют двухбуквенные -имена, по возможности смутно мнемонические (rm, cp, cd, ed, ln, cc, as, ld,... ), некоторые имеют имена в честь своих авторов (awk ), другие являются сокращениями команд (grep для "g/Regular Expression/p" в ed (1 )).

Исторические капризы в изобилии.

1
27.01.2020, 20:17

Теги

Похожие вопросы