为常用路径创建缩写

Cur*_*arn 3 shell directory alias

我想知道是否可以创建可在终端中使用的缩写。我知道alias命令,但不确定它是否可以用于我正在寻找的东西。

示例:假设我经常需要从文件夹中复制内容~/Dropbox/thisfolder。我知道我可以通过创建别名来创建一个快捷方式来切换到这个文件夹,例如,

alias tf="cd ~/Dropbox/thisfolder"
Run Code Online (Sandbox Code Playgroud)

但是,如果我这样做

alias justpath="~/Dropbox/thisfolder"
Run Code Online (Sandbox Code Playgroud)

然后,我不能使用诸如cp justpath/blahfile ./. 是否可以使用其他方式来缩写路径来做这样的事情~/Dropbox/thisfolder

Gil*_*il' 6

在任何 shell 中,您都可以定义一个变量。

justpath=~/Dropbox/thisfolder
Run Code Online (Sandbox Code Playgroud)

(注意:这里没有引号,否则~不会被扩展。)用 a 前缀$来使用它:

cp $justpath/blahfile .
Run Code Online (Sandbox Code Playgroud)

请注意,除非您使用 zsh,否则如果值包含空格或通配符*?\[,则在使用时需要在变量扩展周围加上双引号。

justpath=~/'Dropbox/that folder'
cp "$justpath/blahfile" .
Run Code Online (Sandbox Code Playgroud)

Zsh 拥有(通常如此)更好的设施。您可以定义使用语法访问的命名目录~foo,概括了其中foo是用户名和~foo是该用户的主目录的情况。

alias -d justpath=~/Dropbox/thisfolder
cp ~justpath/blahfile .
Run Code Online (Sandbox Code Playgroud)

对于更复杂的情况,zsh 提供动态命名目录