Могу ли я добавить ярлык для замены пути в Linux?

33

Например, я всегда иду по этому пути:

/ Пользователь / что-то / somefolders / где-то

но я не хочу печатать

CD / пользователь / что-то / Somefolders / где-то

в терминале все время, могу ли я сделать короткую руку для этого? например, могу ли я сделать что-то вроде

cd commandPlace

заменить путь?

user28167
источник

Ответы:

32

Вы можете использовать переменную окружения CDPATHдля этого. Со страницы руководства Bash:

CDPATH

Путь поиска для команды cd. Это список каталогов, разделенных двоеточиями, в которых оболочка ищет каталоги назначения, указанные командой cd. Примером значения является ".: ~: / Usr".

В вашем случае вы можете установить

export CDPATH=.:/user/something/somefolders

в ~/.bashrc, а затем введите cd somewhereвас /user/something/somefolders/somewhere(при условии, что somewhereв текущем каталоге нет имени каталога).

В качестве альтернативы, если вы не хотите ссылаться на папку somewhereпо ее реальному имени, вы можете создать скрытый каталог, содержащий символическую ссылку /user/something/somefolders/somewhereс именем, которое вы хотите использовать. Он также может содержать ссылки на любые другие каталоги, которые вы часто посещаете. Затем CDPATHвключите путь к этому скрытому каталогу. Хотя обратите внимание, что с этим методом, если вы cd somewhereи тогда cd .., вы окажетесь в скрытом каталоге. Это может или не может быть проблемой для вас.

Дэвид З
источник
41

Два ярлыка я использую все время для таких вещей:

Псевдонимы

псевдоним somedir = 'CD / дома / Джон / www / что-то /'

Затем вы можете напечатать, somedirчтобы перейти в этот каталог. Добавьте это к вашему .bashrc.

Символические ссылки

ln -s / long / path / to / some / other / folder / ярлык

Это создаст файл, на /shortcutкоторый ссылаются /long/path/to/some/other/folder. Затем вы можете ввести CD /shortcutвместо. Предостережение в том, что он заполняет ваш корневой каталог (или любой каталог, в который вы помещаете ссылки) довольно быстро. Я предпочитаю псевдонимы.

Джон Т
источник
милый Джон!
Gob00st
это должно быть, ln -s /long/path/to/some/other/folder /shortcutкогда я сделал это наоборот, создал ярлык в том месте, где я хотел создать ссылку. Я отправил изменения, чтобы обновить их.
Элиас
1
Как насчет каталога в корне с коротким именем, например, /slи создавать там ярлыки? (т.е.ln -s /long/path/to/some/other/folder /sl/shortcut ? Нет беспорядка в корне, плюс визуальное напоминание о том, что путь вашего приглашения является символической
ссылкой
14

Я склонен использовать интерактивный поиск bash все время. Попытайся. Вызовите его с помощью Ctrl + R и начните вводить некоторую часть вашего пути, например где-нибудь . Вероятно, ваша команда CD появится. :)

Янне Пиккарайнен
источник
9

Посмотрите на команду "псевдоним".

В csh:

alias commandplace "cd /user/something/somefolders/somewhere"

В ш:

alias commandplace="cd /user/something/somefolders/somewhere"

Но мне нравится решение символической ссылки:

ln -s /user/something/somefolders/somewhere ~/commandplace 

Примечание: ln принимает аргументы в том же порядке, что и cp.

Роберт
источник
9

Другая вещь, которую вы можете сделать, это сохранить рассматриваемый путь в переменной окружения. Добавьте эти строки в ваш ~/.profileфайл:

somedir=/user/something/somefolders/somewhere
export somedir

Затем вы можете получить доступ к каталогу с

cd "$somedir"
terdon
источник
1
На данный момент это лучшее решение imo, потому что вы можете использовать переменную для любой команды. Если вы назначаете псевдоним, то этот псевдоним всегда привязан к такой команде, как cd ...
BdN3504
Это решение, которое я надеялся существовать и искал. По причинам, указанным BdN3504.
inspirednz