Co powoduje podwójne ukośniki w systemie Linux?

9

Instaluję TCE i widzę podwójne ukośniki ( //) na ścieżce instalacji. Dlaczego oni tam są?

 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
źródło

Odpowiedzi:

9

Zdarza się to bardzo często i jest nieszkodliwe. Podwójny ukośnik jest interpretowany jak zwykły ukośnik.

(patrz, man path_resolutionaby zrozumieć proces rozwiązywania ścieżki)

Stéphane Gimenez
źródło
Czy możesz opublikować artykuł, w którym mogę to sprawdzić?
kravemir
Zredagowałem swój post. Problem podwójnego ukośnika nie jest jednak wyraźnie wymieniony na stronie podręcznika, ale można wydedukować odpowiedź.
Stéphane Gimenez
1
Pozostaje pytanie: dlaczego one tam są? :)
slhck,
proste: programowanie. Lepiej jest go mieć niż nie i zawsze uruchamiasz go przez jakąś „path.normalize ()” w wybranym przez ciebie języku / narzędziu. :)
bgs
13

Jest to po prostu wynik łączenia ścieżek jako zwykłych ciągów tekstowych.

Na przykład, jeśli określisz katalog docelowy zawierający ukośnik końcowy ...

make DESTDIR = / usr / local / games / wrogie terytorium / instalacja

... a instalator używa go w ten sposób:

$ (DESTDIR) /tcetest/pak3.pk3

Po rozwinięciu powyższej linii $(DESTDIR)po prostu zostanie zastąpiona dokładną zawartością zmiennej, co spowoduje:

/ usr / local / games / wrogie terytorium / /tcetest/pak3.pk3

Jak wspomniał Stéphane w swojej odpowiedzi, posiadanie dwóch ukośników na ścieżce jest całkowicie nieszkodliwe, dlatego większość skryptów instalacyjnych nie zawraca sobie głowy ich usunięciem.

użytkownik1686
źródło