如何使用命令行快速浏览目录?



我花了一些时间为我的问题找到解决方案,但谷歌不能给我一个足够的答案…我经常使用linux中的命令行,我只是需要一种快速浏览文件系统的方法。我不想总是键入cd[相对或绝对路径]。我知道有push和pop,但是对于这样一个简单的问题来说,这似乎还是太复杂了。

当我在~/Desktop/sampleFile时,我只想使用sampleCommand fileToGo到达~/Desktop/anotherFile/anotherFile/fileToGo,无论文件位于何处。有简单的命令吗?

提前感谢!

这可以在不涉及子shell分支的情况下使用本机Bash特性完成:

您可以将此插入"$HOME/.bashrc":

cdf(){
# Query globstar state
shopt -q globstar
# and save it in the gs variable (gs=0 if set, 1 if not)
local gs=$?
# Need globstar to glob find files in sub-directories
shopt -s globstar
# Find the file in directories
# and store the result into the matches array
matches=(**/"$1")
# globstar no longer needed, so restore its previous state
[ $gs -gt 0 ] && shopt -u globstar
# Change to the directory containing the first matched file
cd "${matches[0]%/*}" # cd EXIT status is preserved
}

嗯,你可以这样做:

cd $(dirname $(find . -name name-of-your-file | head -n 1))

将在当前目录(使用/而不是.来搜索所有目录)中搜索名为name-of-your-filecd的文件到它找到的第一个同名文件的父目录中。

如果您在一个大目录中,输入路径并使用cd可能会比这快,但它适用于小目录。

你可以从这里尝试一下:

https://github.com/vitalij555/cd_plus_plus

安装后,很容易使用:

  1. 用标签标记当前目录(或为了方便而使用多个标签):

标记label_name

  1. 返回到该文件夹,只需发出:

去label_name

我写这个脚本,因为我通常需要在许多不同的文件夹之间切换在工作日,并厌倦了手动创建别名。

相关内容

  • 没有找到相关文章

最新更新