Bash “有吗?”;以“开始”;ZSH中的别名?
我为我经常使用的文件夹定义了几个别名;e、 gBash “有吗?”;以“开始”;ZSH中的别名?,bash,alias,zsh,oh-my-zsh,startswith,Bash,Alias,Zsh,Oh My Zsh,Startswith,我为我经常使用的文件夹定义了几个别名;e、 g alias x="cd /home/username/git/github/user/project" 因此,在终端中键入x直接将我带到项目文件夹 我认为如果字符串仅以别名开头,那么最好定义一个也可以使用的别名;e、 g.如果我定义 starts-with-alias x="cd /home/username/git/github/user/project" 打字 x/abc 我要去: /home/username/git/github/us
alias x="cd /home/username/git/github/user/project"
因此,在终端中键入x
直接将我带到项目文件夹
我认为如果字符串仅以别名开头,那么最好定义一个也可以使用的别名;e、 g.如果我定义
starts-with-alias x="cd /home/username/git/github/user/project"
打字
x/abc
我要去:
/home/username/git/github/user/project/abc
使用标准shell函数,您可以执行以下操作
x() { cd /home/username/git/github/user/project/"$1"; }
x
会带你去那里,x abc
会带你去/home/username/git/github/user/project/abc
不完全是你想要的,但非常接近
免责声明:仅在
bash
下测试;标准语法可能会有所不同,zsh也有一种。使用标准shell函数,您可以执行以下操作
x() { cd /home/username/git/github/user/project/"$1"; }
x
会带你去那里,x abc
会带你去/home/username/git/github/user/project/abc
不完全是你想要的,但非常接近
免责声明:仅在bash
下测试;标准语法可能会有所不同,zsh也有一种。我建议使用别名,可能与选项结合使用
静态命名目录由名称后面的~
表示(其中包含任何字母数字字符、\uu
、-
或
)。通常,它们用于系统上用户的主目录,这意味着~someuser
将被用户的实际主目录someuser
替换
在zsh
中,您还可以使用以下两种方法之一定义自己的静态命名目录:
- 使用以
开头的值定义shell参数:/
x=/home/username/git/github/user/project
- 或者对参数
使用-d
命令(工作原理与alias类似):hash
~x
的目录/home/username/git/github/user/project
:
% cd ~x
% pwd
/home/username/git/github/user/project
它也是路径的第一个组件:
% cd ~x/abc
% pwd
/home/username/git/github/user/project/abc
与别名相比,它还有一个额外的优点,就是它可以与其他命令一起使用,而不仅仅是cd
:
% touch ~x/somefile
% echo foobar > ~x/somefile
% cat ~x/somefile
foobar
启用选项
AUTO_CD
后,zsh
将自动更改为一个目录,如果它是代替命令发出的:
% setopt autocd
% ~x
% pwd
/home/username/git/github/user/project
% ~x/abc
% pwd
/home/username/git/github/user/project/abc
启用选项
CDABLE_VARS
时,如果cd
命令的参数(或启用AUTO_cd
的隐含cd
)不是目录且不是以/
开头,则zsh
将尝试展开参数,就像它是以~/code>开头一样:
% setopt cdablevars
% cd x
% pwd
/home/username/git/github/user/project
% cd x/abc
% pwd
/home/username/git/github/user/project/abc
启用了AUTO_CD
和CDABLE_VARS
,您可以使用命名目录,就像使用CD
的别名一样,还可以直接访问子目录
% setopt autocd cdablevars
% x
% pwd
/home/username/git/github/user/project
% x/abc
% pwd
/home/username/git/github/user/project/abc
注意:如果未在cd
的上下文中使用命名目录(通过AUTO\u cd
显式或隐式),则名称前面需要加上~
,以便展开:
% echo x/abc
x/abc
% echo ~x/abc
/home/username/git/github/user/project/abc
我建议使用替代别名,可能与选项结合使用
静态命名目录由名称后面的~
表示(其中包含任何字母数字字符、\uu
、-
或
)。通常,它们用于系统上用户的主目录,这意味着~someuser
将被用户的实际主目录someuser
替换
在zsh
中,您还可以使用以下两种方法之一定义自己的静态命名目录:
- 使用以
/
开头的值定义shell参数:
x=/home/username/git/github/user/project
- 或者对参数
-d
使用hash
命令(工作原理与alias类似):
这两种方法之间的唯一区别是,第一种方法(显然)提供了一个shell参数,您可以在命名目录未展开(例如,在带引号的字符串中)或导出为环境变量的情况下使用该参数。
无论使用哪种方法,您现在都可以访问名为~x
的目录/home/username/git/github/user/project
:
% cd ~x
% pwd
/home/username/git/github/user/project
它也是路径的第一个组件:
% cd ~x/abc
% pwd
/home/username/git/github/user/project/abc
与别名相比,它还有一个额外的优点,就是它可以与其他命令一起使用,而不仅仅是cd
:
% touch ~x/somefile
% echo foobar > ~x/somefile
% cat ~x/somefile
foobar
启用选项AUTO_CD
后,zsh
将自动更改为一个目录,如果它是代替命令发出的:
% setopt autocd
% ~x
% pwd
/home/username/git/github/user/project
% ~x/abc
% pwd
/home/username/git/github/user/project/abc
启用选项CDABLE_VARS
时,如果cd
命令的参数(或启用AUTO_cd
的隐含cd
)不是目录且不是以/
开头,则zsh
将尝试展开参数,就像它是以~/code>开头一样:
% setopt cdablevars
% cd x
% pwd
/home/username/git/github/user/project
% cd x/abc
% pwd
/home/username/git/github/user/project/abc
启用了AUTO_CD
和CDABLE_VARS
,您可以使用命名目录,就像使用CD
的别名一样,还可以直接访问子目录
% setopt autocd cdablevars
% x
% pwd
/home/username/git/github/user/project
% x/abc
% pwd
/home/username/git/github/user/project/abc
注意:如果未在cd
的上下文中使用命名目录(通过AUTO\u cd
显式或隐式),则名称前面需要加上~
,以便展开:
% echo x/abc
x/abc
% echo ~x/abc
/home/username/git/github/user/project/abc
您可能需要考虑<代码> SETopt AutoCD和<代码> CDPAT++ =(/home /UrnNe/GIT/GITHUB/USER),它应该允许 Project < /C> >在您的代码>…/GITHUB/USE/<代码>目录中切换到同名的目录。您可能需要考虑<代码> SETopt AutoCD和