Чи можу я скоротити введення тексту, необхідне для `cd`, в деякі добре відомі каталоги


11

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

Це означає, що я багато дію і використовую вкладку, щоб значно прискорити справи.

ІТ було б чудово, якби я міг мати якесь посилання на цей каталог, а потім просто записати на нього, щоб я швидко потрапив у глибокий вкладений каталог.

Чи можливо це?


1
У мене є кілька (bash) скриптів, які виконують невеликі (пов'язані з цим) завдання, такі як cd'ing до проекту github та запущені git status. У мене також є псевдоніми у своєму .bash_profile. Не зовсім те, що ви просите, але пов'язане.
клавішник

Відповіді:


24

Ось спосіб cdчасто поводитися зі складними шляхами .

mkdir ~/Links
ln -s /complexpath/there ~/Links

це створить символічне посилання

~/Links/there

Для того, щоб використовувати цей новий Linksефективно каталог, якщо ваш Логін оболонка bash просто включити цю команду в вашому ~/.profile(який використовується усіма оболонками Bourne стилю bash, ksh, zsh...):

CDPATH=~/Links:.
export CDPATH

Це означає, що для кожної cdвашої оболонки буде шукатись у двох каталогах, щоб знайти локальне ім'я:

~/Links
.

Вам не потрібно буде перезавантажувати сеанс, щоб перевірити його, просто запустіть:

. ~/.profile

що означає просто читати моє ~/.profile. (Вам не доведеться вносити його у свій, ~/.bashrcоскільки немає необхідності повторювати ту саму ініціалізацію змінної, коли ви її не змінюєте.)

Після тестування ви зможете перезапустити сеанс;).

Відтепер кожен раз, коли вам захочеться зайти, thereвам доведеться набирати:

cd there

Це найелегантніше загальне рішення, яке я бачив. Я зазвичай роблю псевдоніми для загальних напрямків (наприклад, псевдонім cdoraдо cd $ORACLE_HOMEтаких…)
bmike

Хтось зацікавив би простий еквівалент через інтерфейс Finder?
дан

11

Визначення псевдоніму - це дуже простий спосіб отримати коротке абревіатуру для більш тривалої команди. Після того, як ви маєте право псевдонімів, ви можете створити розділ у вашому файлі .bashrc (або інший файл запуску), щоб вам не довелося повторно вводити ці псевдоніми для кожної нової запущеної оболонки:

у .bashrc:

alias ws4='ssh qsv-rhws4'
alias httpdlog='cd /var/log/httpd/'
alias EC2='ssh -i BMTestEC2.pem ec2-user@xxxxxxxx.compute.amazonaws.com'

тощо.

Вийдіть і поверніться (або просто запустіть . ~/.bashrc), і тепер ви можете просто набрати, httpdlogі він виконує компакт-диск. Або ws4він фактично виконує команду ssh тощо.

Це знімає необхідність створювати (велику кількість) порожніх посилань, що призведе до того, що ваш домашній каталог теж буде схожий на безлад.


10

Спробуйте скористатися або автоперемикачем, або z .

Встановивши будь-який з двох, вам просто cdподобається нормально, і вони вивчають ваші найбільш відвідувані каталоги та дозволяють вам переходити до них, лише набравши частину шляху:

$ cd /very/long/path/foobar
$ cd
$ z foobar
$ echo $PWD
/very/long/path/foobar

Я віддаю перевагу z з двох.


не знаю про autojump, але сценарій 'z' сценарій!
Кріс

7

Я настійно рекомендую fasd, який схожий на autojump та z, але краще IMHO. З веб-сайту:

Fasd (вимовляється подібний до "швидкий") - це підсилювач продуктивності командного рядка. Fasd пропонує швидкий доступ до файлів і каталогів для оболонок POSIX. Він натхненний такими інструментами, як autojump, z і v. Fasd відслідковує файли та каталоги, до яких ви зверталися, так що ви можете швидко посилатися на них у командному рядку.

Назва fasd походить від запропонованих за замовчуванням псевдонімів f (файли), a (файли / каталоги), s (показати / шукати / вибрати), d (каталоги).

Fasd класифікує файли та каталоги за "frecency", тобто за "частотою" та "відвідуванням". Термін "вільність" вперше був введений Mozilla і використаний у Firefox (посилання).


4

Можна також створити псевдонім. Закиньте наступне у щось на кшталт .bashrc або .aliases

alias shortcut='cd ~/path/to/deep/deep/deep/directory/'

Потім переконайтесь, що в якому файлі він знаходиться, sourced. Мої псевдоніми знаходяться в .bashrc, який я надсилаю за допомогою цього рядка в .bash_profile: source ~/.bashrc


2

Додавання символьних посилань зручно для спеціального каталогу або двох, але дуже швидко в ньому виникає біль. Набагато кращим рішенням є використання змінної середовища CDPATH, доступної на bashінших оболонках, саме для цієї мети.

CDPATHце розділений двокрапкою (як PATH) список місць для пошуку імені каталогу. Він може містити як абсолютні, так і відносні імена. У мене встановлено щось подібне export CDPATH=".:..:$HOME/work/repos:$HOME/projects:<etc>".

За допомогою цього налаштування я можу набрати cd pdftools з будь-якого місця, і це потребує мене ~/projects/pdftools. (З лінком, я мав би набрати , cd ~/pdftoolsякби я не був в моєму домашньому каталозі.) Я можу також ярлик в підкаталоги: cd pdftools/bin.

..У моєму CDPATHдозволяє мені тип cd sisterdirзамість cd ../sisterdir, і т.д. Як ви можете очікувати, коли я створюю нові каталоги в будь-якому місці CDPATHвони будуть автоматично знайденим cd- немає необхідності створювати нові символічні посилання або псевдоніми.

Ця функція стає ще приємнішою, якщо ви використовуєте bash_completionрозповсюджений файл, наприклад, із системами Debian. Він не поставляється з моєю коробкою OS X, тому я дістав копію, і вона працює чудово. (Отримати його brew, або просто завантажити його вручну тут .) Цей файл визначає удосконалення командного рядка завершення, так що я можу ввести cd pdf<TAB>і pdftoolsзнайдений каталог і розширено з ніде на CDPATH.


1

Впевнений: Створіть символічне посилання

ln -s /some/really/long/path/to/somewhere/ ~/shortcut
cd ~/shortcut

1

Мені подобається використовувати базові знаки, щоб легко створювати "закладки в каталогах" на льоту.

Дивіться readme за адресою: https://github.com/huyng/bashmarks

Примітка: вам потрібно буде встановити git, щоб слідкувати за триетапним процесом установки bashmark: http://git-scm.com/download/mac

Удачі!


1

Крім того, ви можете спробувати встановити рибну оболонку.

http://fishshell.com/

Це прекрасний прогноз для команд. Він також інтелектуально дозволяє вводити корпус, нечутливий без будь-якого гвинта.

Недоліком риби є те, що у неї є власна мова сценаріїв, і вони не сумісні з баш.


1

Все, що я роблю, - це набрати "cd", а потім перетягнути папку з Finder у термінал, який вставляється на повний шлях. Можливо, не настільки елегантно, але працює для всіх папок проти кількох попередньо збережених ярликів?

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.