我想经常在完全不相关的路径中的目录之间切换,例如/Project/Warnest/docs/和~/Dropbox/Projects/ds/test/。
但我不想一直打字cd /[full-path]/。是否有任何快捷命令可以切换到以前工作过的目录?
我能想到的一种解决方案是将环境变量添加到我bash .profile的常用目录中,cd并使用这些变量添加到它们中。
但是有没有其他解决办法呢?
我发现自己需要经常在我的主文件夹中的几个目录中跳来跳去,并且厌倦了编写它们。我想要一种更快的方法,这在传统上是一个符号链接。
但是,我不想用几十个符号链接弄乱我的主目录。我可以创建一些~/links/目录和杂波它与符号链接,但它仍然是丑陋的。此外,我可能想创建每天都会改变的符号链接(在 .bashrc 中定义)以跳转到当前目录。
有没有办法有效地为符号链接设置别名,创建一些将被识别为快速导航链接的东西,但当我执行ls我的主目录时实际上不会出现,并且不会持续到当前会话之后?
我想构建一个简短的函数来执行以下操作。假设我将文件“file.tex”移动到我的文档目录:
mv file.tex ~/Documents
Run Code Online (Sandbox Code Playgroud)
然后,我cd想到那个目录:
cd ~/Documents
Run Code Online (Sandbox Code Playgroud)
我想将其推广到任何目录,以便我可以这样做:
mv file.tex ~/Documents
follow
Run Code Online (Sandbox Code Playgroud)
并让follow命令从上一个命令读取目标,然后相应地执行。对于一个简单的目录,这不会节省很多时间,但是在处理嵌套目录时,能够只使用
mv file.tex ~/Documents/folder1/subfolder1
follow
Run Code Online (Sandbox Code Playgroud)
我认为这会相对简单,我可以做这样的事情:
follow()
{
place=`history 2 | sed -n '1p;1q' | rev | cut -d ' ' -f1 | rev`
cd $place
}
Run Code Online (Sandbox Code Playgroud)
但这似乎不起作用。如果我 echo $place,我确实得到了所需的字符串(我正在用 测试它~/Documents),但最后一个命令返回
No such file or directory
Run Code Online (Sandbox Code Playgroud)
该目录肯定存在。我不知所措。你能帮我吗?
每隔一段时间,我发现需要做:
cp /really/long/path/to/file.txt /totally/different/long/path/to/copy.txt
Run Code Online (Sandbox Code Playgroud)
由于我使用autojump,进入目录非常快速和容易。但是,在从一个目录复制到另一个目录而不必输入至少一个完整路径时,我不知所措。
在 GUI 文件系统导航器中,这很容易:导航到第一个目录;复制原始文件;导航到第二个目录;和粘贴。但是对于cp,似乎我无法分两步进行复制。
我正在做类似以下的事情:
(use autojump to navigate to the first directory)
$ copy file.txt
(use autojump to navigate to the second directory)
$ paste copy.txt
Run Code Online (Sandbox Code Playgroud)
而不是更长的类型:
(use autojump to navigate to the first directory)
$ cp file.txt /totally/different/long/path/to/copy.txt
Run Code Online (Sandbox Code Playgroud)
是否有提供我正在寻找的功能的工具?我在 OS X El Capitan 上使用 Zsh。