En termes pratiques, les dossiers nommés .
y ..
font respectivement référence au dossier actuel et à son dossier parent. Pour le répertoire racine (désigné par /
) le ..
Le nom se réfère simplement à lui-même.
Les noms "." et " " sont spéciaux dans la mesure où ils ne représentent pas nécessairement quelque chose de réellement stocké dans le système de fichiers sur le disque, comme d'autres noms. Dans certains systèmes de fichiers, il existe effectivement des liens durs nommés "." et "..", mais d'autres systèmes de fichiers ne les stockent pas en tant que tels.
De même, sur les systèmes d'exploitation modernes, comme MacOS, il est possible de monter plusieurs systèmes de fichiers sur la même structure de dossiers. Aux limites de ces intersections, le ".." ne fait pas référence à un lien stocké dans ce système de fichiers, mais plutôt à un dossier dans un système de fichiers complètement différent.
Dans ce cas, ces noms sont purement virtuels, tout en offrant la même fonctionnalité.
La présence de ces noms est en fait dictée par la norme POSIX pour les systèmes d'exploitation, contre laquelle MacOS est certifié depuis la version 10.5. En particulier, la norme spécifie que :
Le point spécial du nom de fichier doit faire référence au répertoire spécifié par son prédécesseur. Le nom de fichier spécial dot-dot fait référence au répertoire parent de son prédécesseur. Dans le cas particulier du répertoire Root, dot-dot peut faire référence au répertoire Root lui-même.
Lorsque vous utilisez l'interface de ligne de commande, vous vous habituerez rapidement à la fonction ..
car vous utilisez souvent des commandes comme cd ..
pour aller dans le dossier parent.
El .
Ce nom remplit une fonction importante en termes de sécurité, car il est utilisé pour indiquer au shell (l'interface de ligne de commande) que vous souhaitez exécuter un programme situé dans le dossier actuel au lieu d'une commande fournie par le système à un autre emplacement. Imaginez que nous n'ayons pas le .
et le système lance simplement le programme dans le dossier en cours sans que cela ne soit explicitement indiqué - un utilisateur malveillant pourrait alors ajouter des programmes portant des noms de commandes courantes dans des dossiers de l'ordinateur, et lorsqu'un autre utilisateur tombe sur ce dossier et a l'intention d'exécuter une commande courante (telle que ls
pour lister les fichiers ou cd
pour changer de répertoire), ils lanceraient plutôt un programme malveillant.
Historiquement, ces noms .
y ..
ont été utilisés sur de nombreux systèmes d'exploitation différents, dont par exemple Windows et Linux. Il trouve son origine dans le système d'exploitation Multics (datant de 1969), qui a été le premier système d'exploitation à proposer un système de fichiers hiérarchique. Multics a été l'une des principales sources d'inspiration de ce qui est finalement devenu Unix. Au cours du processus de développement, les fichiers étaient classés en fonction d'un "répertoire" (dossier courant) et d'un "répertoire du répertoire" (dossier parent). Ces termes étaient abrégés en "d" et "dd", et se prononçaient finalement "dot" et "dot-dot", ce qui a donné lieu à leur représentation actuelle.