¿Qué causa las barras dobles en Linux?

9

Estoy instalando TCE y veo barras dobles ( //) en la ruta de instalación. ¿Por qué están ahí?

 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
fuente

Respuestas:

9

Esto sucede muy a menudo y es inofensivo. La barra doble se interpreta como una barra simple.

(ver man path_resolutionpara entender el proceso de resolución de ruta)

Stéphane Gimenez
fuente
¿Puedes publicar algún artículo donde pueda consultarlo?
kravemir
He editado mi publicación. Sin embargo, el problema con la doble barra no se menciona explícitamente en la página del manual, pero puede deducir la respuesta.
Stéphane Gimenez
1
Aún así, la pregunta real quedaba: ¿por qué están allí? :)
slhck
Simple: programación. Es mejor tenerlo que no hacerlo y siempre lo ejecuta a través de algún tipo de "path.normalize ()" en lang / tool de su elección. :)
bgs
13

Es simplemente el resultado de concatenar rutas como cadenas de texto ordinarias.

Por ejemplo, si especifica el directorio de destino, incluida la barra diagonal final ...

make DESTDIR = / usr / local / games / enemy-territorio / install

... y el instalador lo usa así:

$ (DESTDIR) /tcetest/pak3.pk3

Cuando la línea anterior se expande, $(DESTDIR)simplemente se reemplazará con el contenido exacto de la variable, lo que dará como resultado:

/ usr / local / games / enemigo-territorio / /tcetest/pak3.pk3

Como Stéphane mencionó en su respuesta, tener dos barras en una ruta es completamente inofensivo, por lo que la mayoría de los scripts de instalación no se molestan en eliminarlos.

usuario1686
fuente