Le point-barre oblique, ./
, est un chemin relatif vers quelque chose dans le répertoire courant.
Le point est le répertoire courant et la barre oblique est un délimiteur de chemin.
Lorsque vous donnez la commande touch ./a
vous dites "exécutez le touch
utilitaire avec l'argument ./a
", et touch
créera (ou mettra à jour l'horodatage pour) le fichier a
dans le répertoire courant.
Il n'y a pas de différence entre touch a
et touch ./a
car les deux commandes agiront sur la chose appelée a
dans le répertoire courant.
De la même manière, touch ../a
agira sur le a
dans le répertoire au-dessus du répertoire courant sous la forme ..
fait référence à "un répertoire plus haut dans la hiérarchie".
.
et ..
sont deux noms de répertoire spéciaux qui sont présents dans chaque répertoire sur les systèmes Unix.
C'est utile de pouvoir mettre ./
parfois devant un nom de fichier, comme lorsque vous essayez de créer ou de supprimer, ou simplement de travailler avec, un fichier avec un tiret comme premier caractère de son nom de fichier.
Par exemple,
touch -a file
ne créera pas de fichier appelé -a file
, et ni l'un ni l'autre
touch '-a file'
Mais,
touch ./'-a file'
le ferait.
Le ./
La notation est utile lorsque vous essayez d'exécuter un script ou un autre exécutable dans le répertoire courant. Contrairement à l'invite de commande Windows, les shells Unix (et les systèmes de type Unix comme Linux) ne vérifient pas le répertoire actuel pour les exécutables avant de vérifier le PATH
variable d'environnement, et les systèmes Unix ont tendance à ne pas inclure ./
dans le PATH
pour des raisons de sécurité. En ayant à préciser
./executable
plutôt que simplement
executable
l'utilisateur dit "Oui, je je fais voulez lancer cet exécutable dans le répertoire courant"
C'est ce qu'on appelle un chemin relatif.
.
représente le répertoire de travail courant. Donc, si vous êtes actuellement en /home/jesse
, .
est simplement un lien vers /home/jesse
donc quand vous pointez sur ./
vous pointez vraiment vers /home/jesse/