什么导致Linux中的双斜杠?

kra*_*mir 9 linux

我正在安装 TCE 并//在安装路径中看到双斜杠 ( )。他们为什么在那里?

 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
Run Code Online (Sandbox Code Playgroud)

use*_*686 13

它只是将路径连接为普通文本字符串的结果。

例如,如果您指定包含结尾斜杠的目标目录...

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

...安装程序像这样使用它:

$(DESTDIR) /tcetest/pak3.pk3

当上面的行被扩展时,$(DESTDIR)简单地将被替换为变量的确切内容,导致:

/usr/local/games/enemy-territory/ /tcetest/pak3.pk3

正如 Stéphane 在他们的回答中提到的,在路径中有两个斜杠是完全无害的,这就是为什么大多数安装脚本不会删除它们的原因。


Sté*_*nez 10

这种情况经常发生,而且是无害的。双斜线被解释为简单的斜线。

(见man path_resolution了解路径解析过程)

  • 尽管如此,真正的问题仍然存在:*为什么*他们在那里?:) (3认同)