Macos 在终端(Unix/OS X)中导航到常用/最近使用的目录
是否可以保存我最近/通常使用的某些位置(如/folder/folder/folder/),这样我就不必在当前目录和目标目录之间手动浏览每个目录 有点像alt tab,但用于路径。我使用的是OSX,但也许这可以使用基本的Unix技能来完成Macos 在终端(Unix/OS X)中导航到常用/最近使用的目录,macos,bash,unix,Macos,Bash,Unix,是否可以保存我最近/通常使用的某些位置(如/folder/folder/folder/),这样我就不必在当前目录和目标目录之间手动浏览每个目录 有点像alt tab,但用于路径。我使用的是OSX,但也许这可以使用基本的Unix技能来完成 谢谢 在大多数shell中工作的一种方式(但对于不同的shell略有不同)是目录堆栈。您可以使用 PUSTD 推送目录, POPD < /C> >从堆栈中弹出顶部目录,以及 DRIs,以移动目录并切换到堆栈中间的目录。我刚检查过,Mac OS X上的pushd手
谢谢 在大多数shell中工作的一种方式(但对于不同的shell略有不同)是目录堆栈。您可以使用<代码> PUSTD 推送目录,<代码> POPD < /C> >从堆栈中弹出顶部目录,以及<代码> DRIs<代码>,以移动目录并切换到堆栈中间的目录。我刚检查过,Mac OS X上的
pushd
手册页没有用;使用shell的手册页(很可能是bash
)并在那里搜索pushd
,等等。在大多数shell中工作的一种方法(但对于不同的shell略有不同)是目录堆栈。您可以使用<代码> PUSTD 推送目录,<代码> POPD < /C> >从堆栈中弹出顶部目录,以及<代码> DRIs<代码>,以移动目录并切换到堆栈中间的目录。我刚检查过,Mac OS X上的pushd
手册页没有用;使用shell的手册页(可能是bash
)并在那里搜索pushd
,等等。可以是别名(通过将其放入~/.bashrc
或~/.profile
,具体取决于设置):
或者@Jeremiah建议的pushd/popd
。或者是别名
(根据设置将其放入~/.bashrc
或者~/.profile
):
或者@Jeremiah建议的pushd/popd
。如果您将shell设置为保存命令历史记录,则使用Ctrl+R热键可以节省一些时间,这样可以在键入时搜索以前执行的命令。另一件值得注意的事情是,如果您按Tab键一次/两次,大多数Shell都会为您提供文件/目录名完成功能,这也是非常有帮助的
编辑:您还可以在单个目录(如主目录)中创建一些符号链接,以快速访问目录。使用ln-s
命令。目标路径可以是相对路径,也可以是绝对路径。如果将shell设置为保存命令历史记录,则使用Ctrl+R热键可以节省一些时间,这样可以在键入时搜索以前执行的命令。另一件值得注意的事情是,如果您按Tab键一次/两次,大多数Shell都会为您提供文件/目录名完成功能,这也是非常有帮助的
编辑:您还可以在单个目录(如主目录)中创建一些符号链接,以快速访问目录。使用ln-s
命令。目标路径可以是相对路径,也可以是绝对路径。在Bash中,可以向CDPATH
变量添加目录。如果尝试将cd
添加到一个不以斜杠开头的目录,则会搜索CDPATH
中列出的目录以查找匹配的目标。在Bash中,可以将目录添加到CDPATH
变量中。如果您尝试将cd
复制到一个不以斜杠开头的目录,则会搜索CDPATH
中列出的目录以查找匹配的目标。在zsh
中有几个选项
如果您使用setopt AUTO_PUSHD
,shell可以保存一堆最近插入的cd
”目录。完成设置后(autoload-U compinit;compinit
),键入cd+
,然后按tab键,您将得到一个编号列表:
~% cd /Library
/Library% cd /System/Library
/System/Library% cd +
1 -- /Library
2 -- /Users/nicholas
因此,最近的目录是+1
,等等(您可以像我一样,使用setopt PUSHD\u-MINUS
将其反转,因此您使用-
而不是+
,最近的目录是-1
)
另一个选择是目录散列;您可以创建伪“主目录”(~随便什么
)。我的一些朋友,例如:
hash -d v=/Volumes
hash -d a=/Volumes/BanjoArchive
hash -d pep=/System/Library/Frameworks/Python.framework/Versions/Current
hash -d sp=$(print /Library/Python/*/site-packages(On[1]))
因此,我可以直接键入cd~pep
或cd-pep
(如果没有歧义),甚至可以键入pep
(如果设置了AUTO_-cd
)。在非cd
的情况下,您也可以将目录堆栈与~
一起使用,例如~+1
或~-1
zsh
甚至可以用AUTO\u NAME\u DIRS
选项替换~
之后的shell变量,尽管我不使用它,因为它会使变量列表混乱。然而,这里有一个例子:
~%setopt AUTO_NAME_DIRS
~%v=/Volumes
~%cd ~v
~v%pwd
/Volumes
zsh
还支持另一个答案中提到的cdpath
。例如,我有:
cdpath=($HOME /Volumes)
因此,我可以只使用主目录中已装入的卷或目录的名称来cd
。在zsh
中有几个选项
如果您使用setopt AUTO_PUSHD
,shell可以保存一堆最近插入的cd
”目录。完成设置后(autoload-U compinit;compinit
),键入cd+
,然后按tab键,您将得到一个编号列表:
~% cd /Library
/Library% cd /System/Library
/System/Library% cd +
1 -- /Library
2 -- /Users/nicholas
因此,最近的目录是+1
,等等(您可以像我一样,使用setopt PUSHD\u-MINUS
将其反转,因此您使用-
而不是+
,最近的目录是-1
)
另一个选择是目录散列;您可以创建伪“主目录”(~随便什么
)。我的一些朋友,例如:
hash -d v=/Volumes
hash -d a=/Volumes/BanjoArchive
hash -d pep=/System/Library/Frameworks/Python.framework/Versions/Current
hash -d sp=$(print /Library/Python/*/site-packages(On[1]))
因此,我可以直接键入cd~pep
或cd-pep
(如果没有歧义),甚至可以键入pep
(如果设置了AUTO_-cd
)。在非cd
的情况下,您也可以将目录堆栈与~
一起使用,例如~+1
或~-1
zsh
甚至可以用AUTO\u NAME\u DIRS
选项替换~
之后的shell变量,尽管我不使用它