Sid*_*Sid 3 command-line bash alias amazon-ec2
ubuntu 18.04 on AWS
我按照stackoverflow上的答案创建了一个路径别名:
nano ~/.bashrc
alias myfolder='/home/xxx/pms'
Run Code Online (Sandbox Code Playgroud)
当我尝试 cd
cd myfolder
Run Code Online (Sandbox Code Playgroud)
我得到:
无此文件或目录
但是如果我使用它的工作路径。
我不确定这里的问题是什么。
TIA
您可能会想到Mac OS 中定义和使用的术语别名。
对于 ubuntu,命令别名做了完全不同的事情。您使用的命令用于创建新命令,因此您不必记住更长的命令,或者您键入的更长的命令会更快地键入别名。例如,如果我不想继续输入此命令来启动程序:
java -jar /usr/local/bin/bfg-1.13.0.jar
您可以像这样bfg在我的 Unix 配置文件(或~/.bashrc您拥有的)中创建一个别名:
alias bfg='java -jar /usr/local/bin/bfg-1.13.0.jar'
以后我bfg每次想运行java程序都可以用。
在 Ubuntu 中,您要寻找的是符号链接。ln在 Ubuntu(和所有其他 Unix 变体)上使用该命令创建符号链接。请参阅以下示例。
在下面的例子中,你可以看到该文件夹已经存在所谓的pms在我的主文件夹。
因此它的绝对路径是/home/ubuntu/pms。
ubuntu@server:~$ ls -l
total 4
drwxrwxr-x 2 ubuntu ubuntu 4096 Mar 25 11:05 pms
Run Code Online (Sandbox Code Playgroud)
现在我更改为母亲的目录,我想的链接,你作为一个别名思维,并创建符号链接用ln -s
ubuntu@server:~$ cd /tmp/
ubuntu@server:/tmp$ ln -s /home/ubuntu/pms myfolder
Run Code Online (Sandbox Code Playgroud)
现在我可以按照您的理解将目录更改为此别名。
ubuntu@server:/tmp$ cd myfolder/
ubuntu@server:/tmp/myfolder$ pwd
/tmp/myfolder
Run Code Online (Sandbox Code Playgroud)
需要明确的是,在 Unix 和 Linux 领域,别名是完全不同的东西。可以通过列出/tmp我创建它的目录来查看我创建的符号链接。
ubuntu@server:/tmp/myfolder$ cd /tmp
ubuntu@server:/tmp$ ls -l
total 16
lrwxrwxrwx 1 ubuntu ubuntu 16 Mar 25 11:06 myfolder -> /home/ubuntu/pms
Run Code Online (Sandbox Code Playgroud)
的内容为/tmp/myfolder一,与 相同/home/ubuntu/pms。