我在macos上使用zoxide
进行目录导航(即替代cd
命令)。我想有一个简单的bash函数来创建一个新目录,然后立即将zoxide
放入其中。
我对这个漂亮的答案做了一个小的修改,如下:
mcd ()
{
mkdir -p -- "$1" &&
z -P -- "$1"
}
然后我尝试在~/Desktop
中运行它以创建一个全新的(即不存在的)目录~/Desktop/my_templates
,如下所示:
~/Desktop
> mcd mytemplates
zoxide: no match found
我认为问题是zox还没有意识到新目录mytemplates
的存在,因此无法导航到它。
我也试过删除&&
,看看是否运行mkdir
和z
作为单独的命令会有所帮助,但同样的问题发生了。
谁能解释一下如何解决这个问题?
问题出现在
z -P -- "$1"
我改成了
z "$1"
由于-P
是cd
特定的语法来解析符号链接。对于zox,似乎要解析符号链接,这是通过在这里更改_ZO_RESOLVE_SYMLINKS
配置设置来完成的。
所以所需函数的最终形式现在是
mcd (){
mkdir -p -- "$1" &&
z "$1"
}
按预期工作