我想知道是否可以创建可在终端中使用的缩写。我了解alias
命令,但不确定它是否可以用于我正在寻找的东西。
示例:假设我经常需要从文件夹复制内容~/Dropbox/thisfolder
。我知道我可以通过创建别名来创建切换到该文件夹的快捷方式,例如,
alias tf="cd ~/Dropbox/thisfolder"
但是,如果我这样做
alias justpath="~/Dropbox/thisfolder"
然后,我无法使用诸如 之类的命令cp justpath/blahfile ./
。是否可以使用其他方式缩写路径来执行类似的操作~/Dropbox/thisfolder
?
答案1
在任何 shell 中,您都可以定义变量。
justpath=~/Dropbox/thisfolder
(注意:这里没有引号,否则~
不会被展开。)在它前面加上 a 前缀$
即可使用它:
cp $justpath/blahfile .
请注意,除非您使用 zsh,否则如果值包含空格或通配符*?\[
,则在使用变量扩展时需要用双引号引起来。
justpath=~/'Dropbox/that folder'
cp "$justpath/blahfile" .
Zsh 拥有(通常)更好的设施。您可以定义命名目录使用语法 访问~foo
,一般情况下foo
是用户名,~foo
是该用户的主目录。
alias -d justpath=~/Dropbox/thisfolder
cp ~justpath/blahfile .
对于更复杂的情况,zsh 提供动态命名目录。