你好(抱歉我的英语不好)
我刚刚学会了如何使用别名永久设置特定值的键:
.bashrc
alias please='sudo'
alias go='cd'
alias destroy='rm -rf'
并且它运行得很好。但后来我想,如果我可以将我最喜欢的路径(如~/Music)存储在 .bashrc 中以方便使用,那将会多么有趣。所以我这样做了:
alias please='sudo'
alias go='cd'
alias destroy='rm -rf'
alias home='~'
alias work='~/Workstation'
alias back='..'
但没用。我也尝试过定义这样的变量:
back='..'
但也没用。
我知道我可以这样做 alias gowork='cd ~/Workstation'
,但我希望能够使用我存储在许多不同命令中的路径,如下所示:
destroy work
我希望能够做这样的事情:
go back/Pictures
非常感谢你们提供的帮助!
答案1
“别名”是 shell 命令的缩写。您的定义alias home='~'
不起作用,因为它没有指定有效的命令:
~$ ~
bash: /home/vanadium: Is a directory
因此,这种方法不适合您用可以在命令中使用的较短名称替换完整路径名。
一种方法是定义变量。可能不需要为您的主目录和上一个文件夹定义快捷方式:内置缩写~
和..
分别尽可能短:我建议您直接采用这些。
对于其他路径,您可以定义环境变量,这些变量与别名类似,可以通过将它们包含在以下内容中使其成为永久变量.bashrc
:
export work=~/Workstation
然后可以在命令中使用它
cd $work
并且可以和你的其他别名一起使用,例如
destroy $work
处理带空格的路径名时需注意:
• 如果变量中定义的路径名包含空格,则需要用引号括住变量,如下所示
cd "$work"
• 如果定义带有空格的变量,则需要保留由 bash 扩展的符号,例如~
,不加引号,如下所示
export work=~"/Pathname with spaces"