Переход к часто используемым / недавно использованным папкам в терминале (Unix / OS X) - PullRequest
1 голос
/ 23 января 2011

Можно ли сохранить определенные местоположения, которые я недавно / часто использовал (например, / folder / folder / folder /), чтобы мне не приходилось вручную перемещаться по каждому каталогу между моим текущим и конечным каталогом?

Вроде как alt-tab, но для путей.Я нахожусь на OS X, но, возможно, это можно сделать, используя базовые навыки Unix?

Спасибо!

Ответы [ 7 ]

2 голосов
/ 23 января 2011

Если вы настроили свою оболочку для сохранения истории команд, использование горячей клавиши Ctrl + R может сэкономить вам некоторое время, которое выполняет поиск ранее выполненных команд по мере ввода.Еще одна полезная вещь - это то, что большинство оболочек обеспечивают завершение имени файла / каталога, если вы нажимаете клавишу Tab один или два раза, что также очень полезно.создайте несколько символических ссылок внутри одного (например, домашнего) каталога для быстрого доступа к каталогам.Используйте команду ln -s <path to target file/directory> <path to link>.Целевые пути могут быть относительными или абсолютными.

1 голос
/ 10 марта 2011

Я наткнулся на Z , и это решило все мои проблемы с dir-навигацией.

1 голос
/ 23 января 2011

В zsh есть несколько опций.

Оболочка может хранить стек из самых последних каталогов, в которые вы cd 'ввели, если вы используете setopt AUTO_PUSHD.После настройки завершения (autoload -U compinit; compinit) введите cd + и нажмите tab , после чего вы получите нумерованный список:

~% cd /Library
/Library% cd /System/Library
/System/Library% cd +
1 -- /Library
2 -- /Users/nicholas

Таким образом, самый последний каталог - +1 и т. д. (Вы можете изменить это, как и я, с помощью setopt PUSHD_MINUS, поэтому вы используете - вместо +, а самый последний каталог - -1).

Другой параметр - каталогхеширования;Вы можете создавать псевдо-"домашние каталоги" (~whatever).Некоторые из моих, например:

  hash -d v=/Volumes
  hash -d a=/Volumes/BanjoArchive
  hash -d pep=/System/Library/Frameworks/Python.framework/Versions/Current
  hash -d sp=$(print /Library/Python/*/site-packages(On[1]))

Так что я могу просто набрать cd ~pep или cd pep (если однозначно) или даже pep (если установлено AUTO_CD).В ситуациях, отличных от cd, вы также можете использовать стек каталогов с ~, например, ~+1 или ~-1.

zsh может даже заменить переменные оболочки после ~ наопция AUTO_NAME_DIRS, хотя я ее не использую, потому что это загромождает список переменных.Тем не менее, вот пример:

~%setopt AUTO_NAME_DIRS
~%v=/Volumes

~%cd ~v
~v%pwd
/Volumes

zsh также поддерживает cdpath, как упоминает один из других ответов.Например, у меня есть:

cdpath=($HOME /Volumes)

, поэтому я могу просто использовать имя подключенного тома или каталога в моем домашнем каталоге для cd к нему.

1 голос
/ 23 января 2011

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

1 голос
/ 23 января 2011

Одним из способов, который работает в большинстве оболочек (но немного отличается для разных оболочек), является стек каталогов. Вы можете использовать pushd для проталкивания каталога, popd для извлечения верхнего каталога из стека и dirs для перемещения каталогов и переключения на каталоги в середине стека. Я только что проверил, и страница справки для pushd в Mac OS X бесполезна; используйте страницу руководства для вашей оболочки (вероятно, bash) и найдите там pushd и т. д.

0 голосов
/ 22 февраля 2011

Взгляните на «Cd Deluxe» для значительно улучшенной команды «изменить каталог»: http://www.plan10.com/cdd/.

0 голосов
/ 23 января 2011

Либо alias (путем помещения его в ~/.bashrc или ~/.profile в зависимости от настройки):

alias godocs='cd /home/me/my_docs`

или pushd/popd, как предполагает @Jeremiah.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...