Linux 上的快速文件夹访问(类似于 Launchy)

Linux 上的快速文件夹访问(类似于 Launchy)

Launchy是一款很棒的软件,我在 Windows 上使用它主要是为了快速访问文件夹。我喜欢它在后台自动索引的功能,而且现在几乎不用手动浏览文件夹,这节省了我很多时间。

然而,在 Linux(Ubuntu 9.10)上,我通常“生活在”终端中。因此,Linux 上的 Launchy(或 Gnome Do,或其其他替代品)不是我所需要的 - 因为它会打开文件管理器,而我不需要文件管理器。

我真正需要的是索引我的文件夹并让我cd在终端中快速进入它们。例如:

mycd python_c

愿意cd

~/dev/scripts/python_code

我希望我的意图能够被理解:-)

您熟悉这样的工具吗?

答案1

Bash 有CDPATH变量。

$ CDPATH="$CDPATH:~/dev/scripts/:/some/other/one/too"
$ cd python_code
/home/username/dev/scripts/python_code
$ pwd
/home/username/dev/scripts/python_code

您可以编写如下这样的值维护脚本:

在你的~/.bashrc

cd() {
    while read -r dir
    do
        if [[ ! $CDPATH =~ $dir ]]
        then
            CDPATH="${CDPATH}:${dir}"
        fi
    done < ~/.cdpath
    builtin cd "$@"
}
cd .    # update CDPATH
export CDPATH

在一个名为的文件中/usr/local/bin/mkcdpath

#!/bin/bash
# update the stored CDPATH directory list
# run from cron, can be run manually
# requires Bash >= 3.2
cdp=$(<~/.cdpath)
while read -r dir
do
    if [[ ! $cdp =~ $dir ]]
    then
        cdp="${cdp}:${dir}"
    fi
done < <(find /anchored_at_root -maxdepth 1 some_find_args  -type d)
echo "$cdp" > ~/.cdpath

使用 定期运行该操作cron

现在,无论何时使用cd,它都会更新当前 shellCDPATH并根据它执行目录更改(除了执行cd首先尝试的正常 s 之外)。您可以更改函数名称(并删除命令cd)以使其成为仅更新函数并使用常规 cd 命令 - 它只是不会自动更新值。

答案2

我只是想写下来,经过一番寻找,我发现- 它会学习您使用 CD 进入的目录,然后让您轻松跳转到这些目录。

还有自动跳转,但z似乎更接近我的需要。

答案3

你可能对一些感兴趣的高级功能zsh. 它添加了一些额外的快捷方式cd

相关内容