(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.