Il s'avère que cette fonctionnalité n'est pas spécifique à Apple. Ceci est une caractéristique des systèmes BSD en général.
/* Root is -A automatically. */
if (!getuid())
f_listdot = 1;
Au départ, je pouvais le retrouver dans les sources de 4.4BSD-Lite . Il était déjà présent dans cet engagement FreeBSD depuis 1994 qui importait ces sources.
La fonctionnalité est également présente dans OpenBSD et se trouve dans ce commit de 1995 prétendant importer du code à partir de NetBSD. Elle était donc déjà présente dans NetBSD .
Ensuite, on découvre le commit de NetBSD de 1993 qui prétend importer du code de 386BSD , et la fonctionnalité est déjà présente . En outre, cet engagement montre qu’il était présent lors du développement de la version 0.0 de 386BSD en 1991, qui est passé de BSD à la version 4.3, pour autant que je sache.
Le commentaire est apparu pour la première fois lors du développement de la 4.3BSD-Reno dans ce commit (27 juin 1989) intitulé "première version de travail de new ls". Le commentaire original disait:
/* root sees all files automatically */
qui a été changé plus tard dans la journée (je ne suis pas sûr que les horodatages soient tout à fait corrects dans ce référentiel):
/* root is -A automatically */
Et seulement en 1992, la lettre majuscule et la période ont été ajoutées, transformant le commentaire en ce que nous avons maintenant:
/* Root is -A automatically. */
Mais le comportement était présent dans 2BSD à compter du 9 mai 1979, comme le montre cet instantané :
Aflg = getuid() == 0;
Je ne peux trouver aucune histoire réelle de cette époque, mais il y a aussi cet instantané de 1BSD de 1977 sans ces lignes. Et sans le -A
drapeau en fait.
Il semble donc que la fonctionnalité ait été introduite quelque part entre novembre 1977 (1BSD en cours de développement à ce moment-là) et la sortie de 2BSD en mai 1979.
Ce que j’ai également découvert lors de cette enquête, c’est le -I
drapeau ajouté à FreeBSD en 2005 pour remplacer ce comportement et qui a été retravaillé un peu plus tard.