如果我需要经常这样做:
cd ../../../../foo/sub1/bar/dest/
cd ../../../../foo2/sub1/bar/dest/
cd ../../../../foo3/sub1/bar/dest/
cd ../../../../foo/sub1/bar/dest/
有没有更快的方法可以避免总是输入../../../../
这么多次?有什么有创意的想法吗?
答案1
实现此目的的经典方法是设置CDPATH
变量。根据您的情况,可以将其设置为.:../../../../
或.:/path/to/the/parent/of/foo
以实现所需的效果。然后您只需执行操作即可cd foo/sub1/bar/dest
到达您想要的位置。
这样做的好处是,制表符补全也会cd
查看$CDPATH
并神奇地起作用。
答案2
您可以使用自动跳转它会自动从上一个 cd 命令中学习,下次您只需从完整路径中指定唯一的字符串。 例如
j foo
,,
j foo1
j foo2
答案3
您可以通过在 bash 配置文件 (~/.bashrc 或 /etc/bash.bashrc) 中添加别名来为这些命令创建快捷方式
alias cdd="cd ../../../../"
然后当您输入时cdd
它将执行该命令。
答案4
我最近遇到了https://github.com/rupa/z,它允许您通过正则表达式跳转到最近使用的目录。因此,您可以执行以下操作:
z foo3.*dest
代替:
cd ../../../../foo3/sub1/bar/dest/
(只要您以前访问过该目录,并且没有更新/最常用的与该正则表达式匹配)