(2 réponses)
Fermé il y a 3 ans.
Duplication possible :
Comment Linux gère plusieurs séparateurs de chemin (/home////username///file)
La plupart des commandes que j'utilise sous Linux se comportent exactement de la même manière, que j'inclue la barre oblique finale /
caractère à la fin d'un nom de répertoire ou non.
Par exemple :
ls /home/cklein
ls /home/cklein/
cp foo bar
cp foo/ bar/
Quand cette barre oblique finale est-elle importante ? Quelle est la signification sémantique de la barre oblique finale ?
Réponse acceptée :
Un bon exemple est de déplacer un fichier dans un répertoire :
mv some_file foo
contre
mv some_file foo/
Si foo
n'existe pas, le premier renommera some_file
à foo
, plutôt que le foo/some_file
prévu; le second se plaindra, c'est ce que vous voulez.
Si foo
existe mais n'est pas un répertoire, le premier peut encombrer le foo
dossier; encore une fois, le second se plaindra.
cp
présente des problèmes similaires.
En travaillant sur certaines anciennes versions de SunOS, j'ai pris l'habitude d'ajouter /.
, car le système a en fait ignoré un /
de fin sur un nom de fichier ; par exemple, /etc/motd/
ferait référence au fichier plutôt que d'être une erreur. Les versions ultérieures de SunOS / Solaris ne semblent pas avoir ce problème.