Page suivante Page précédente Table des matières

3. Un bref historique de la commande 'ls'

Par Eric Fisher enf@pobox.com

La commande ls, dont le but est d'afficher une liste de fichiers, est l'un des utilitaires les plus importants pour les utilisateurs d'Unix et de Linux, et, sans grande surprise, un des plus anciens.

Dans ses premières versions cette commande était nommée listf et était disponible sur le CTSS (Compatible Time Sharing System) du MIT (Massachusetts Institute of Technology), en juillet 1961. En 1963, il y avait juste quelques options pour modifier le comportement de listf :

En 1965, listf a été étendue pour pouvoir reconnaître le caractère "*" comme un moyen de donner la liste de tous les fichiers qui correspondaient à un motif particulier, avec d'autres améliorations pour la reconnaissance d'expressions dans une version mise à jour le 3 janvier 1966. La version de 1966 a également généralisé la syntaxe et a ajouté de nombreuses options, dont, entre autres :

Quand CTSS a été supplanté par Multics, la commande listf a été renommée en list, qui pouvait être éventuellement abrégée en ls. Les premières versions de ls avaient moins d'options que les dernières versions de listf, mais conservaient, avec quelques autres :

Quand Bell Labs a laissé tomber le développement de Multics en 1969 et qu'il commença à travailler sur Unix, seule la version abrégée de list, ls, a été conservée. Le manuel d'Unix Première Edition (le 3 novembre 1971), décrivait les options suivantes de ls, qui sont encore toutes disponibles de nos jours :

Avec la Cinquième Edition (page de manuel datée du 20 mars 1974), la liste d'options de ls s'est allongée avec :

La Sixième Edition (en mai 1975) rajoutait une option supplémentaire :

En mai et août 1977, Bill Joy apporta quelques modifications personnelles à la commande ls à Berkeley (Université de San Fransisco), qu'il distribua par la suite comme partie intégrante de la First Berkeley Distribution, 1BSD. La différence la plus marquante de cette version de ls est qu'elle donnait une liste des fichiers sur plusieurs colonnes au lieu de ne donner qu'un nom par ligne. Les options pour régir le nouveau format étaient :

Il y eu quelques controverses pour savoir s'il était approprié d'inclure dans le code de ls le formatage sous forme de colonnes, ou s'il valait mieux laisser cette tâche à un programme extérieur dans lequel serait redirigée, via un tube, la sortie de ls (ou n'importe quel autre programme).

Au début de l'année 1979, Bell Labs sortit la Septième Edition d'Unix. Sa version de ls n'incluait pas les changements controversés, et possédait une nouvelle option qui entrait en conflit avec une des lettres que Joy avait également utilisé :

Une nouvelle version du ls de Berkeley, datée du 26 août 1980, et distribuée avec 4.0BSD, résolut ce conflit en mettant en majuscule l'option permettant de donner la liste sous forme de colonnes : ls -C. Elle ajouta également à ce qu'en ce temps, le manuel appelait "un nombre incroyable d'options" :

Une autre révision dans 4.2BSD (le 28 juillet 1983) supprima les options -m, -b et -x -- mais pas avant que le System V Release 2 les ait toutes trois ajoutées à son répertoire. Elles sont temporairement restées en vie là, mais aucune des trois ne passa la standardisation POSIX, et de ce fait, la version de ls de 4.2BSD est pratiquement la même que celle de ls que nous connaissons aujourd'hui.

Article publié dans le numéro 48 de la Linux Gazette, décembre 1999.

Traduction française de Xavier Serpaggi.


Page suivante Page précédente Table des matières