
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
答案3
你可能对一些感兴趣的高级功能zsh
. 它添加了一些额外的快捷方式cd
。