Виявляється, ця функція не стосується 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 р.) Під назвою "перша робоча версія нового 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 році, щоб змінити таку поведінку та був перероблений трохи пізніше.