Qu'est-ce qui cause des doubles barres obliques sous Linux?

9

J'installe TCE et je vois des doubles barres obliques ( //) dans le chemin d'installation. Pourquoi ils sont là?

 100% - /usr/local/games/enemy-territory//tcetest/ReadMe.rtf
 100% - /usr/local/games/enemy-territory//tcetest/changelog.rtf
 100% - /usr/local/games/enemy-territory//tcetest/ui.mp.i386.so
 100% - /usr/local/games/enemy-territory//tcetest/qagame.mp.i386.so
 100% - /usr/local/games/enemy-territory//tcetest/pak3.pk3
 100% - /usr/local/games/enemy-territory//tcetest/pak2.pk3
kravemir
la source

Réponses:

9

Cela arrive très souvent et c'est inoffensif. La double barre oblique est interprétée comme une barre oblique simple.

(voir man path_resolutionpour comprendre le processus de résolution de chemin)

Stéphane Gimenez
la source
Pouvez-vous publier n'importe quel article où puis-je le vérifier?
kravemir
J'ai édité mon message. Le problème avec la double barre oblique n'est pas explicitement mentionné dans la page de manuel, mais vous pouvez en déduire la réponse.
Stéphane Gimenez
1
Alors, la vraie question reste: pourquoi sont-ils là? :)
slhck
simple: programmation. Il vaut mieux l'avoir que de ne pas le faire et vous l'exécutez toujours à travers une sorte de "path.normalize ()" dans lang / tool de votre choix. :)
bgs
13

C'est simplement le résultat de la concaténation de chemins en tant que chaînes de texte ordinaires.

Par exemple, si vous spécifiez le répertoire de destination, y compris la barre oblique de fin ...

faire DESTDIR = / usr / local / jeux / territoire-ennemi / installer

... et l'installateur l'utilise comme ceci:

$ (DESTDIR) /tcetest/pak3.pk3

Lorsque la ligne ci-dessus est développée, elle $(DESTDIR)sera simplement remplacée par le contenu exact de la variable, résultant en:

/ usr / local / jeux / territoire-ennemi / /tcetest/pak3.pk3

Comme Stéphane l'a mentionné dans sa réponse, avoir deux barres obliques dans un chemin est totalement inoffensif, c'est pourquoi la plupart des scripts d'installation ne se soucient pas de les supprimer.

user1686
la source