быстрый доступ папки на Linux (сродни Launchy)

Launchy является большой частью программного обеспечения, я использую его в Windows главным образом для того, чтобы быстро получить доступ к папкам. Я люблю его автоиндексацию в фоновом режиме и почти никогда не просматриваю папки вручную в эти дни, решает меня много времени.

На Linux (Ubuntu 9.10) я обычно "живу" в терминале, как бы то ни было. Поэтому Launchy на Linux (или Gnome Делают, или его другие замены) не то, в чем я нуждаюсь - поскольку он открывает файловый менеджер, и мне не нужен файловый менеджер.

То, в чем я действительно нуждаюсь, является чем-то, что индексирует мои папки и позволяет мне cd в них быстро в терминале. Например:

mycd python_c

Будет cd кому:

~/dev/scripts/python_code

Я надеюсь, что мое намерение понято :-)

Действительно ли Вы знакомы с такими инструментами?

1
задан 02.04.2010, 16:50

3 ответа

Просто хочу записать это после некоторого оглядывания, я нашел z - это изучает каталоги Вы CD в и затем позволяет Вам легко вскочить в них.

Существует также автопереход, но z кажется, ближе к тому, в чем я нуждаюсь.

0
ответ дан 17.12.2019, 00:45

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, это обновит текущую оболочку CDPATH и выполните изменение каталога согласно ему (в дополнение к выполнению нормального cds, которые пробуют сначала). Вы могли изменить имя функции (и удалить cd команда) сделать это, обновление функционирует только и использовать регулярную команду CD - это просто, не обновило бы значение автоматически.

1
ответ дан 17.12.2019, 00:45

Вы могли бы интересоваться некоторой расширенной функцией zsh. Это добавляет некоторые дополнительные ярлыки на cd.

0
ответ дан 17.12.2019, 00:45

Теги

Похожие вопросы