Que signifient "." Et ".." dans un dossier?


34

Quand j’avais l'habitude ls -ade voir les fichiers cachés dans le dossier, il y avait 2 fichiers cachés créés par défaut, quelle est la signification de ces deux fichiers .et ..?

ls -a

Produit

.  ..

Je les utilise beaucoup quand je fais un, ls -lacar il me montrera les permissions et la propriété du répertoire dans lequel je me trouve et du répertoire situé au-dessus de celui dans lequel je me trouve.
Marco Ceppi

Je n'ai pas assez de représentants ici pour voter, mais j'ai mis un drapeau sur cette question car c'est une question à laquelle on peut répondre en 3 secondes en effectuant une recherche sur Google (et parce qu'il y a eu une discussion récente sur des questions qui sont trop faciles sur SO blog).
zzzzBov

1
^ zzzzBov Merci en espagnol pour votre générosité.
mr_eclair

Réponses:


40

. est le dossier en cours.

.. est le dossier situé au-dessus du dossier actuel - le dossier contenant le dossier actuel.

Vous verrez parfois ce point unique utilisé lorsque quelqu'un voudra exécuter un script à partir de son répertoire personnel. Par exemple: ./install-app.sh. Cela signifie que le fichier "install-app.sh" est dans le répertoire en cours. Il serait tout aussi valable de faire /home/username/directory/install-app.sh. De la même manière, vous pouvez aussi faire ../install.app si le fichier est dans le répertoire parent. La raison pour laquelle il en est ainsi, ce n’est pas seulement pour la navigation, mais aussi qu’il ne devrait pas être possible de masquer accidentellement des applications système simplement en donnant un nom incorrect à un fichier de votre répertoire personnel.


100% correct. Considérez-les comme des crochets situés dans chaque répertoire. Ils sont utilisés uniquement pour la navigation. Vous constaterez que ce n’est pas seulement un standard Linux, mais également sous Windows. Probablement les mêmes sur unix et mac aussi, mais je n'ai jamais joué dans aucune de leurs invites de commande.
Ctuchik

1
cd / ; cd ..: P
Htorque

1
C'est la même chose sur FreeBSD, donc j'imagine que c'est aussi le cas sur mac, puisque mac est basé sur Darwin BSD.
Azendale

htorque: es-tu une personne religieuse peut-être? :)
Jo-Erlend Schinstad

C'est sur Mac OS X (qui fonctionne comme n'importe quel autre Unix, bien que l'interface graphique en cache une partie). Mac OS Classic ne les avait pas; ::a été utilisé pour le répertoire précédent. Les chemins sans :eux étaient le répertoire courant. Sinon, un chemin complet (commençant par le nom du disque) était attendu, les composants étant délimités par :. Ex:Macintosh HD:System Folder:Finder
derobert le

4

Ce sont des liens en dur vers les répertoires self (.) Et parent (..). Ils sont créés lorsque vous créez un répertoire. Ils ne peuvent jamais être supprimés (sans supprimer le répertoire indiqué par eux).

Si vous créez un répertoire:

mkdir /tmp/foo

vous pouvez voir qu'il y a en fait 2 liens durs vers / tmp / foo:

drwxr-xr-x 2 michal michal 4096 2011-08-07 18:40 /tmp/foo
           ^---- two hardlinks

le premier provient de / tmp / répertoire et pointe vers / tmp / foo, et le second est le '.' avec dans / tmp / foo / pointant vers lui-même.


2

Notez également que vous pouvez utiliser ls -A(au lieu de ls -a) pour répertorier tous les fichiers, y compris les fichiers cachés, mais en excluant les répertoires .et ...


En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.