Самый простой способ сократить каталог?

Я знаю, что это может быть дубликат, и если это так, я удалю его.

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

До сих пор я использовал переменные в .bashrc, но есть проще, чем

cd $data

, чтобы добраться куда-нибудь? Например, если я хочу просто ввести «данные» и перейти к одной из моих папок данных, как мне это сделать?

0
задан 13 July 2017 в 01:07

6 ответов

Используйте cdable_vars:

$ data=/tmp $ shopt -s cdable_vars $ cd data /tmp

Или autocd

$ shopt -s autocd $ $data cd -- /tmp

Из руководства:

autocd Если установлено, a имя команды, которое является именем каталога, выполняется, как если бы это был аргумент команды cd. Этот параметр используется только для интерактивных оболочек. cdable_vars Если это установлено, считается, что аргументом для встроенной команды cd, которая не является каталогом, является имя переменной, значение которой является каталогом, для которого требуется изменить.

Было бы блестящим, если бы мы могли объединить эти два, но оба они кажутся взаимоисключающими по объему.

1
ответ дан 18 July 2018 в 10:22

Моя первая мысль была в том, что сказал Сергий, но альтернативой является создание символической ссылки в вашем домашнем каталоге:

ln -s data /long/path/to/deep/directory/data

Теперь вы можете просто cd data (из вашего домашнего каталога, иначе это cd ~/data), когда вы хотите туда добраться. Это имеет дополнительное преимущество: если вы открываете nautilus и хотите туда попасть графически, вы также можете просто щелкнуть ссылку на данные в своем домашнем каталоге.

3
ответ дан 18 July 2018 в 10:22

Просто сделайте псевдоним для соответствующей команды в ~/.bashrc.

alias data='cd /home/User/some_folder/another_folder/data/'

И запустите source ~/.bashrc. После этого вы можете просто ввести data в терминал, и он приведет вас туда

3
ответ дан 18 July 2018 в 10:22

Используйте cdable_vars:

$ data=/tmp $ shopt -s cdable_vars $ cd data /tmp

Или autocd

$ shopt -s autocd $ $data cd -- /tmp

Из руководства:

autocd Если установлено, a имя команды, которое является именем каталога, выполняется, как если бы это был аргумент команды cd. Этот параметр используется только для интерактивных оболочек. cdable_vars Если это установлено, считается, что аргументом для встроенной команды cd, которая не является каталогом, является имя переменной, значение которой является каталогом, для которого требуется изменить.

Было бы блестящим, если бы мы могли объединить эти два, но оба они кажутся взаимоисключающими по объему.

1
ответ дан 24 July 2018 в 19:33

Моя первая мысль была в том, что сказал Сергий, но альтернативой является создание символической ссылки в вашем домашнем каталоге:

ln -s data /long/path/to/deep/directory/data

Теперь вы можете просто cd data (из вашего домашнего каталога, иначе это cd ~/data), когда вы хотите туда добраться. Это имеет дополнительное преимущество: если вы открываете nautilus и хотите туда попасть графически, вы также можете просто щелкнуть ссылку на данные в своем домашнем каталоге.

3
ответ дан 24 July 2018 в 19:33

Просто сделайте псевдоним для соответствующей команды в ~/.bashrc.

alias data='cd /home/User/some_folder/another_folder/data/'

И запустите source ~/.bashrc. После этого вы можете просто ввести data в терминал, и он приведет вас туда

3
ответ дан 24 July 2018 в 19:33
  • 1
    Пытался сделать псевдоним раньше и не мог заставить его работать. Кажется, сейчас работает. Спасибо, партнер. – J. Doe 13 July 2017 в 22:38
  • 2
    @ J.Doe. Добро пожаловать. Как вы делали псевдоним раньше? Возможно, была проблема с цитированием или что-то в этом роде – Sergiy Kolodyazhnyy 13 July 2017 в 23:07
  • 3
    Это была моя догадка. Некоторая небольшая ошибка. Нужны ли исходные и окончательные / должны быть включены? Если это так, это могла быть моя ошибка. – J. Doe 15 July 2017 в 00:38
  • 4
    Конечная косая черта не обязательно должна быть включена, но для первоначального она зависит от того, что вы имеете в виду. Первоначальный должен быть включен, если вы даете абсолютный путь. Если я говорю каталог под названием my_stuff, который находится в моем домашнем каталоге, я бы дал cd /home/user/my_stuff. Если я уже в /home/user, я могу просто сделать cd my_stuff, или немного лучше использовать cd ./my_stuff. Для псевдонима в этом вопросе, который вы хотите запустить из любого места, вы должны сделать это с помощью абсолютного пути. – Sergiy Kolodyazhnyy 15 July 2017 в 00:57

Другие вопросы по тегам:

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