Cosa causa le doppie barre in Linux?


9

Sto installando TCE e vedo doppie barre ( //) nel percorso di installazione. Perché sono 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

Risposte:


9

Questo succede molto spesso ed è innocuo. La doppia barra viene interpretata come una barra semplice.

(vedi man path_resolutionper capire il processo di risoluzione del percorso)


Puoi pubblicare qualsiasi articolo dove posso controllarlo?
kravemir,

Ho modificato il mio post. Il problema con la doppia barra non è esplicitamente menzionato nella pagina man, ma è possibile dedurre la risposta.
Stéphane Gimenez,

1
Quindi, la vera domanda è rimasta: perché sono lì? :)
slhck,

semplice: programmazione. È meglio averlo che non farlo e lo si esegue sempre attraverso una sorta di "path.normalize ()" in lang / tool di propria scelta. :)
bgs

13

È semplicemente il risultato di concatenare percorsi come normali stringhe di testo.

Ad esempio, se si specifica la directory di destinazione inclusa la barra finale ...

crea DESTDIR = / usr / local / games / nemico-territorio / installa

... e il programma di installazione lo utilizza in questo modo:

$ (DESTDIR) /tcetest/pak3.pk3

Quando la riga sopra viene espansa, $(DESTDIR)verrà semplicemente sostituita con il contenuto esatto della variabile, risultando in:

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

Come ha affermato Stéphane nella loro risposta, avere due barre in un percorso è del tutto innocuo, motivo per cui la maggior parte degli script di installazione non si preoccupano di rimuoverli.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.