web-dev-qa-db-fra.com

Qu'est-ce qu'un dossier nommé par points uniquement?

Je sais quels fichiers ou dossiers sont des points, mais il existe un dossier spécifique nommé dossier (le nom est juste un point) dans tous les répertoires. Pour quoi sont-ils utilisés?

Par exemple, voici une partie de mon dossier "bin". Regardez les premières lignes de remorquage.

drwxr-xr-x  2 root root 4.0K Jul 29 12:39 .
drwxr-xr-x 23 root root 4.0K Jul 29 12:37 ..
-rwxr-xr-x  1 root root 904K Mar 30 20:02 bash
-rwxr-xr-x  1 root root  30K Aug  3  2012 bunzip2
...
8
ziggurat

Chaque répertoire contient un . et une entrée ...

. signifie le répertoire lui-même. Il s’appelle le répertoire actuel .

.. signifie le répertoire parent du répertoire , c'est-à-dire le répertoire qui le contient.

Il existe un répertoire qui ne figure dans aucun autre répertoire: /. Donc, / est spécial - comme tous les autres répertoires, il contient une entrée .., mais son entrée .. est elle-même. Donc pour /, et juste pour /, .. et . sont équivalents.

Ces entrées de répertoire sont utiles à diverses fins. Par exemple, vous pouvez changer de répertoire en parent du répertoire dans lequel vous vous trouvez avec la commande cd ...

Vous avez peut-être vu . dans le contexte de programmes ou de scripts en cours d'exécution. Dans un shell de type Unix, lorsque vous exécutez une commande par son nom, le shell n'essaie pas automatiquement d'exécuter un programme sous son nom dans le répertoire en cours. (Cela surprend certains utilisateurs de Windows, mais cela se produit.) La raison principale en est la sécurité: si quelqu'un crée dans son répertoire un programme qui porte le même nom qu'un outil d'administration système, et que vous l'exécutez alors qu'ils se trouvaient dans leur répertoire, ils auraient simplement pu vous inciter à exécuter leur programme.

Ainsi, pour exécuter un programme qui ne se trouve pas dans votre PATH , vous devez l’appeler par un nom comportant un /. Pour exécuter un programme dans le répertoire actuel, vous pouvez utiliser ./program. (Vous ne pouvez pas utiliser /program, car il s'agit d'un chemin absolu et signifie "le fichier appelé program dans le répertoire racine, /.)

16
Eliah Kagan

. désigne le répertoire en cours.

.. signifie le répertoire parent.

Ainsi, lorsque vous tapez cd .., vous augmentez d’un niveau. Lorsque vous tapez cp /etc/resolv.conf ., vous copiez le fichier /etc/resolv.conf dans le répertoire en cours.

1
ubuntu_tr

Le point unique représente le répertoire en cours. Le double point représente le répertoire parent. Taper "cd .." vous mènera au répertoire parent. Voir le bas de cette page pour plus d'informations: http://www.basicconfig.com/linux/linux_cd_command_tutorial

1
tstew