Vad Sim Asked: 2022-07-03 23:39:58 +0800 CST2022-07-03 23:39:58 +0800 CST 2022-07-03 23:39:58 +0800 CST 如何将带有冒号(“:”)的目录添加到 PATH 中? 772 在这里,我找到了带有..:;名称的文件。mkdir '..:;'工作正常。但在 PATH 目录名称中,由:. 如何将此目录添加到PATH? linux directory 2 个回答 Voted Best Answer Kusalananda 2022-07-15T23:50:18+08:002022-07-15T23:50:18+08:00 POSIX 标准明确提到不可能在变量值中使用:名称中包含的目录。PATH 请参阅标题为“其他环境变量PATH”的部分中有关环境变量的条目: 由于<colon>是此上下文中的分隔符,因此可能使用的目录名称PATH不应包含<colon>字符。 在zshshell 中,您可以将目录添加到搜索路径,并通过修改path数组变量(绑定到 PATH)使其按预期工作: path+=( '/some/path/..:;' ) 或首先添加条目而不是最后添加条目: path=( '/some/path/..:;' $path ) 但是,在这样做之后,使用PATH而不是通过path数组修改 shell 的搜索路径将导致..:;条目在:. 另外,请注意,尽管修改后的路径可能在zshshell 中工作,但它不太可能在另一个 shell 或从该 shell 启动的应用程序中按预期工作。 AdminBee 2022-07-15T23:50:35+08:002022-07-15T23:50:35+08:00 根据StackOverflow 上的这个答案,这是不可能的,因为$PATH它不被 shell 解释,但 execvp不提供转义分隔符。
POSIX 标准明确提到不可能在变量值中使用
:
名称中包含的目录。PATH
请参阅标题为“其他环境变量
PATH
”的部分中有关环境变量的条目:在
zsh
shell 中,您可以将目录添加到搜索路径,并通过修改path
数组变量(绑定到PATH
)使其按预期工作:或首先添加条目而不是最后添加条目:
但是,在这样做之后,使用
PATH
而不是通过path
数组修改 shell 的搜索路径将导致..:;
条目在:
. 另外,请注意,尽管修改后的路径可能在zsh
shell 中工作,但它不太可能在另一个 shell 或从该 shell 启动的应用程序中按预期工作。根据StackOverflow 上的这个答案,这是不可能的,因为
$PATH
它不被 shell 解释,但execvp
不提供转义分隔符。