March 1, 2010

Быстрая смена каталогов в консоли Linux с помощью WCD

Для того, чтобы быстро прыгать по каталогам в Linux, можно использовать разные продвинутые оболочки типа zsh, а можно прикрутить маленький костылёк wcd к старому-доброму bash. О том и пост - самому не забыть и читателя потешить :-)

Итак, что мы имеем после установки wcd? Набираем часть имени каталога, нажимаем Enter и видим варианты - выбираем один из них и тут же перелетаем в нужный нам каталог.

Установка проста:

aptitude install wcd

Далее создаём ссылку на wcd.exec в домашнем каталоге:

ln -s /usr/lib/wcd/wcd.exec ~/bin

и добавляем следующую функцию в стартовый файл .bashrc оболочки bash:

function wcd

{
$HOME/bin/wcd.exeс $*
. $HOME/bin/wcd.go
}

в sid'е установка wcd заключается в добавлении строчки
. /usr/share/wcd/wcd-include.sh в .bashrc

cat wcd-include.sh
function wcd
{
go=$HOME/bin/wcd.go
test -f $go && rm -f $go
/usr/lib/wcd/wcd.exec $* && test -f $go && source $go
}


После этого следует перезалогиниться или создать новую оболочку (открыть новый таб).

Как использовать WCD
Для этого сначала создадим деревья директорий. Например

$ wcd -A .

Точка в конце говорит о том, что создаём деревья директорий, начиная с текущей. Должно ответить просто:

Wcd: Please wait. (re)Scanning disk. Building treedata-file from /home/beast

И всё. Теперь получаем удовольствие.
Итак, есть каталог /home/beast/docs/matlab/Sci/cvkonnik
Но набирать это всё долго и лениво. Вместо этого пишем:

$ wcd cvk*

И нажимаем большую и любимую клавишу Enter. При этом в консоли выдаётся менюшка вида:

a /home/beast/docs/matlab/Sci/cvkonnik
b /home/beast/docs/matlab/docus/Work/otherscidocs/Sci/cvkonnik


Wild match for 2 directories. w=up x=down ?=help Page 1/1
Please choose one ( to abort):


Нажимаю букву b и тут же перелетаю в нужный мне каталог:

beast@notebeast:~/docs/matlab/docus/Work/otherscidocs/Sci/cvkonnik$

И все дела. Очень удобно и очень здорово!

Ещё веселее, если такой каталог у вас один - переход произойдёт сразу же:

wcd IST*
-> /home/beast/docs/matlab/docus/articles/SPIEproceedings/IST2009
beast@notebeast:~/docs/matlab/docus/articles/SPIEproceedings/IST2009$


Ссылки
На всякий случай WCD расшифровывается как Wherever Change Directory. Сайт автора программы, но он очень аскетичен. Так же толковую статью по wcd можно найти на ЛинСовете тут. Замечательная статья по поводу WICD есть на блоге Максима Иванова.
а если копируете статью - поставьте ссылку на оригинал!
©