*nix 上的快速 Cd'ing 方法?

Dan*_*ark 4 unix macos

我发现自己经常打字(当然是使用 tab)像这样的荒谬路径

cd path/to/the/thing\ that\ I\ need/python/proj/eraseme
Run Code Online (Sandbox Code Playgroud)

除了做一个ln -s(或其他类型的 ln?),还有其他方法可以更快地绕过吗?另外,如果解决方案是使用ln,是否有一些标准的方式/位置来放置链接,以免我的~目录混乱?

我不只是要求捷径:任何有助于解决“如何绕过”问题的解决方案都会有所帮助。

Ign*_*ams 11

在 bash 中,$CDPATH环境变量包含使用cd.

CDPATH=".:~/long path to my projects"
cd eraseme
Run Code Online (Sandbox Code Playgroud)

  • 就看你能不能习惯了。我的意思是,既然这是你为自己做的事情,而不是你强加给别人的事情,那么尝试没有坏处。 (2认同)

Pet*_*ric 9

有些人为此使用别名。试试这个,例如:

alias cderaseme='cd /home/user/whatever/path/to/the/thing\ that\ I\ need/python/proj/eraseme'
Run Code Online (Sandbox Code Playgroud)

现在,您可以在每次要转到该目录时键入 cderaseme。别名仅对当前终端会话有效,因此请将其放在 .bashrc 中以保留它。


knw*_*iss 6

一些简单的想法:

  • 使用制表符补全。
  • 用于cd返回到您的主目录。使用cd ~/<dir>相对于你的home目录的目录中去。
  • 用于cd -返回上一个目录。即使用此命令您可以在两个目录之间来回切换。
  • 使用pushd <dir>去一个目录,记得到目录栈上以前的位置。然后使用popd返回(在目录堆栈中)到前一个位置。
  • 使用相对路径,即cd ../<dir>,而不是绝对路径。
  • 使用cd !$去的前一个命令的最后一个参数中提到的目录(取决于您的shell)。示例:mkdir /tmp/dir后跟cd !$和您当前的目录是/tmp/dir.

  • 您还可以在输入路径时使用通配符。星号 (*) 特别有用——就像使用一个完整的选项卡而不必选择替代项(只要路径更远的东西使它明确无误)。 (2认同)