Оказывается, эта функция не специфична для Apple. Это особенность систем BSD в целом.
/* Root is -A automatically. */
if (!getuid())
f_listdot = 1;
Изначально мне удалось отследить его до источников 4.4BSD-Lite . Он уже присутствовал в этом коммите FreeBSD 1994 года, который импортирует эти источники.
Эта функция также присутствует в OpenBSD, и ее можно найти в этом коммите 1995 года, который утверждает, что импортирует код из NetBSD, поэтому он уже присутствовал в NetBSD .
Затем обнаруживается фиксация NetBSD с 1993 года, которая утверждает, что импортирует код из 386BSD , и эта функция уже есть . Кроме того, этот коммит показывает, что он был там во время разработки 386BSD версии 0.0 в 1991 году, которая, насколько я могу судить, разветвлялась от BSD около 4.3.
Комментарий появился впервые при разработке 4.3BSD-Reno в этом коммите (27 июня 1989 г.) под названием «первая рабочая версия new ls». Оригинальный комментарий сказал:
/* root sees all files automatically */
который был изменен позже в тот же день (хотя я не уверен, что временные метки в этом репозитории полностью верны):
/* root is -A automatically */
И только в 1992 году были добавлены заглавная буква и точка, что превратило комментарий в то, что мы имеем сейчас:
/* Root is -A automatically. */
Но поведение присутствовало в 2BSD по состоянию на 9 мая 1979 года, как видно на этом снимке :
Aflg = getuid() == 0;
Я не могу найти никакой реальной истории тех времен, но есть также снимок 1BSD 1977 года без этих строк. И без -A
флага на самом деле.
Таким образом, кажется, что эта функция была введена где-то между ноябрем 1977 года (1BSD разрабатывается в тот момент) и выпуском 2BSD в мае 1979 года.
В ходе этого расследования я также обнаружил -I
флаг, который был добавлен во FreeBSD в 2005 году для отмены этого поведения и был переработан чуть позже.