O que causa barras duplas no Linux?

9

Estou instalando o TCE e vejo barras duplas ( //) no caminho da instalação. Por que eles estão 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
fonte

Respostas:

9

Isso acontece com muita frequência e é inofensivo. Barra dupla é interpretada como barra simples.

(veja man path_resolutionpara entender o processo de resolução do caminho)

Stéphane Gimenez
fonte
Você pode postar algum artigo onde posso ver?
Kravemir
Eu editei minha postagem. O problema com barra dupla não é explicitamente mencionado na página de manual, mas você pode deduzir a resposta.
Stéphane Gimenez
1
Ainda assim, resta a pergunta real: por que eles estão lá? :)
slhck
simples: programação. É melhor tê-lo do que não, e você sempre o executa através de algum tipo de "path.normalize ()" no idioma / ferramenta de sua escolha. :)
bgs 16/05
13

É simplesmente o resultado da concatenação de caminhos como cadeias de texto comuns.

Por exemplo, se você especificar o diretório de destino, incluindo a barra final ...

make DESTDIR = / usr / local / games / território-inimigo / install

... e o instalador usa assim:

$ (DESTDIR) /tcetest/pak3.pk3

Quando a linha acima é expandida, $(DESTDIR)simplesmente será substituída pelo conteúdo exato da variável, resultando em:

/ usr / local / games / território-inimigo / /tcetest/pak3.pk3

Como Stéphane mencionou na resposta, ter duas barras no caminho é totalmente inofensivo, e é por isso que a maioria dos scripts de instalação não se preocupa em removê-los.

user1686
fonte