3

Возникли проблемы с поиском в Google, потому что я не уверен, что такое поисковый запрос. Сценарии оболочки или функция терминала. Каков наилучший способ упростить доступ к часто используемым каталогам. Обычно, когда я запускаю терминал, по умолчанию это мой домашний каталог, но иногда мне хочется открыть несколько окон терминала, проблема в том, что я набираю cd /.../directory в каждом из них несколько раз, и мне нужен способ не иметь сделать это. Каков наилучший способ или просто предоставить условия поиска, которые я мог бы использовать, чтобы прочитать об этом в Интернете. Спасибо

9 ответов9

7

Создайте символическую ссылку в вашем домашнем каталоге:

$ ln -s path/to/a/really/deeply/nested/director/my-project ~/my-project

$ cd ~/my-project
4

Добавьте переменную в ваш .bashrc:

MYPROJECT=path/to/a/really/deeply/nested/director/my-project

использовать:

$ cd $MYPROJECT
4

Установите переменную CDPATH: она содержит дополнительные каталоги для поиска при запуске cd .

4

Вы также можете воспользоваться переменной CDPATH .

И вы могли бы определить function Баш в вашем $HOME/.bashrc нравится

 # in file ~/.bashrc
 function work() {
    cd $HOME/path/to/a/really/deeply/nested/director/my-project
 }

А недавний bash или даже лучше zsh может позволить вам такие вещи, как

 cd **/my-project

Предполагая, что у вас есть только один глубоко вложенный каталог my-project/ во всей иерархии дерева. ** делает эквивалент find поэтому может быть медленным.

2

Вы также можете попробовать автопрыжки.

Это как команда cd но с возможностью учиться. Он поддерживает базу данных каталогов, которые вы посещаете, и присваивает вес каждой записи.

Позже вы можете использовать j foo для перехода в каталог, который содержит foo в своем имени. Если у foo более нескольких каталогов, он покажет вам список совпадений, из которого вы можете выбрать желаемый каталог.

1

Вы можете использовать закладки для оболочки, например, bookmarks.sh.

1

Автор CDPATH рекомендует экспортировать CDPATH в окружающую среду. Пожалуйста, имейте в виду, что есть большая вероятность того, что это слегка сломает сценарии оболочки, которые ожидают, что каталоги будут в одном определенном месте. Чтобы исправить это, поместите CDPATH в ~/.bashrc, а не экспортируйте его. Ваш ~/.bashrc будет выглядеть так:

CDPATH=/var/:/etc/

Обратите внимание, что в этом случае исходные тексты сценариев все еще будут использовать CDPATH. AutoJump , безусловно, является гораздо более безопасной альтернативой и более удобной в использовании, чем CDPATH.

0

Добавьте псевдоним в ваш .bashrc

alias myproject="cd path/to/a/really/deeply/nested/director/my-project"

использовать:

$ myproject
0

anc разработан именно для этого случая использования.

https://github.com/tobimensch/anc

Вот выдержка из README.md:

# make the current directory the default anchor:
$ anc s

# go to /etc, then /, then /usr/local and then back to the default anchor:
$ cd /etc; cd ..; cd usr/local; anc

# go back to /usr/local :
$ anc b

# add another anchor:
$ anc a $HOME/test

# view the list of anchors (the default one has the asterisk):
$ anc l
(0) /path/to/first/anchor *
(1) /home/usr/test

# jump to the anchor we just added:
# by using its anchor number
$ anc 1
# or by jumping to the last anchor in the list
$ anc -1

# add multiple anchors:
$ anc a $HOME/projects/first $HOME/projects/second $HOME/documents/first

# use text matching to jump to $HOME/projects/first
$ anc pro fir

# use text matching to jump to $HOME/documents/first
$ anc doc fir

# add anchor and jump to it using an absolute path
$ anc /etc
# is the same as
$ anc a /etc; anc -1

# add anchor and jump to it using a relative path
$ anc ./X11 #note that "./" is required for relative paths
# is the same as
$ anc a X11; anc -1

# using wildcards you can add many anchors at once
$ anc a $HOME/projects/*

# use shell completion to see a list of matching anchors
# and select the one you want to jump to directly
$ anc pro[TAB]

Полное раскрытие: я автор anc.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .