我正在安装 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
答案1
这种情况经常发生,但无害。双斜线被解释为单斜线。
(查看man path_resolution
以了解路径解析过程)
答案2
它只是将路径连接为普通文本字符串的结果。
例如,如果您指定包含结尾斜杠的目标目录...
使 DESTDIR=/usr/local/games/敌人领土/安装
...安装程序像这样使用它:
$(目标目录)/tcetest/pak3.pk3
当上面这一行扩展后,$(DESTDIR)
simply 将被替换为变量的确切内容,结果为:
/usr/local/games/敌人领土//tcetest/pak3.pk3
正如 Stéphane 在他的回答中提到的那样,路径中有两个斜杠是完全无害的,这就是为什么大多数安装脚本都不会费心删除它们。
答案3
比如,当一个包含目录/路径名的变量以 / 结尾,然后在其后附加另一个 / 而不检查该变量是否已经以 / 结尾时,就会发生这种情况,例如:
# say pathvariable is "/usr/bin/"
"$pathvariable/apt" # this will result in "/usr/bin//apt"
这完全无害,因为文件/目录名称中的连续 / 在几乎所有 Unix 系统(包括 Linux)上都被视为单个 /。此外,在 99% 的情况下,“directory/”与“directory”相同(末尾没有斜杠)...值得注意的例外是 rsync,它对此非常挑剔 =)