Es stellt sich heraus, dass diese Funktion nicht Apple-spezifisch ist. Dies ist ein Merkmal von BSD-Systemen im Allgemeinen.
/* Root is -A automatically. */ if (!getuid()) f_listdot = 1;
Anfangs konnte ich es auf die Quellen von 4.4BSD-Lite zurückführen . Es war bereits in diesem FreeBSD-Commit aus dem Jahr 1994 enthalten, das diese Quellen importiert.
Die Funktion ist auch in OpenBSD vorhanden und kann in diesem Commit aus dem Jahr 1995 gefunden werden, das angibt, Code aus NetBSD zu importieren, sodass dieser bereits in NetBSD vorhanden war .
Dann entdeckt man das Commit von NetBSD aus dem Jahr 1993, das behauptet, Code aus 386BSD zu importieren, und die Funktion ist bereits vorhanden . Darüber hinaus zeigt dieses Commit, dass es während der Entwicklung der 386BSD-Version 0.0 im Jahr 1991 an der BSD-Version 4.3 lag, soweit ich das beurteilen kann.
Der Kommentar erschien zum ersten Mal während der Entwicklung von 4.3BSD-Reno in diesem Commit (27. Juni 1989) mit dem Titel "Erste Arbeitsversion neuer Ls". Der ursprüngliche Kommentar sagte:
/* root sees all files automatically */
die später am Tag geändert wurde (ich bin nicht sicher, ob die Zeitstempel in diesem Repository völlig korrekt sind) an:
/* root is -A automatically */
Und erst 1992 wurden der Großbuchstabe und die Periode hinzugefügt, wodurch der Kommentar zu dem wurde, was wir jetzt haben:
/* Root is -A automatically. */
Das Verhalten war jedoch in 2BSD ab dem 9. Mai 1979 wie in dieser Momentaufnahme zu sehen :
Aflg = getuid() == 0;
Ich kann keine tatsächliche Geschichte aus diesen Zeiten finden, aber es gibt auch diese Momentaufnahme von 1BSD von 1977 ohne diese Zeilen. Und -A
eigentlich ohne Fahne.
Es scheint also, dass das Feature irgendwo zwischen November 1977 (1BSD wird gerade entwickelt wird) und der Veröffentlichung von 2BSD im Mai 1979 eingeführt wurde.
Was ich auch bei dieser Untersuchung gefunden habe, ist die -I
Flagge, die FreeBSD 2005 hinzugefügt wurde, um dieses Verhalten zu überschreiben, und wurde etwas später überarbeitet .