我经常必须cd
从$HOME
一个特定的长目录路径开始。所以我想我应该在 $HOME 中放置一个 cdscript 以便更快地到达那里。
cd脚本:
#!/bin/sh
directory="/some/big/long directory path/that/I/use/frequently"
cd "$directory"
设置权限:
chmod 700 cdscript
./cdscript
没有做任何事情。我缺少什么? (是的,路径中的这些空格存在,并且我可以成功复制并粘贴 shell 中的确切单独行,因此路径也存在)。另外,只创建一个到目录的符号链接而不是上面的脚本,然后cd
到链接,是不是更Unixey?
答案1
只是在做
./cdscript
行不通的。基本上你分叉了一个新的 shell,在其中你 cd,然后 shell(和新的工作目录)退出。
你需要使用
. ./cdscript
(有一个前导点和一个空格)
第一个点的意思是:./cdscript
像我输入的一样运行。如果 则需要第二个点。不在你的PATH
变量中。
答案2
您最好在 shell 中为此创建一个别名。例如,在 中.bashrc
,您可以输入;
alias cdscript='cd /really/long/file/path/'
答案3
该脚本会更改您当前的工作目录,但退出时会恢复该目录。而不是打字
cdscript
尝试输入
. cdscript
运行脚本以获得所需的结果。