我经常使用 Windows 和 Linux,有时我会cd\
根据 Windows 的肌肉记忆进行输入,因此我尝试为其添加别名,alias cd\='cd /'
但这不起作用(可能是因为\
它是 Linux 中的转义字符)。有没有办法使用别名或函数来输入cd\
=> cd /
?
答案1
这很难,因为反斜杠用于转义下一个字符,并且在行尾,它开始一个连续行。因此,即使您可以创建一个名为 的函数cd\
,您也需要将其运行为cd\\
, 或'cd\'
。对于别名,转义或引用部分名称可以防止别名扩展......
无论如何,您无法在 Bash 中创建这些别名或函数:
$ alias cd\\='echo foo'
bash: alias: `cd\': invalid alias name
$ cd\\ () { echo foo; }
bash: `cd\\': not a valid identifier
不过,你可以在 Zsh 中使用,但你需要双反斜杠......
% cd\\ () { echo foo; }
% cd\\
foo
实际上它甚至似乎接受别名,但你不能使用它:
% alias foo\\='echo bar'
% foo\\
zsh: command not found: foo\
% 'foo\'
zsh: command not found: foo\
Bash 可以运行名称中带有反斜杠的外部命令,但这对cd
.