Есть ли что-то вроде истории обратного поиска bash (Ctrl-r), но только для каталогов?
У меня есть глубокие иерархии папок, к которым я хочу перейти, поэтому я хотел бы использовать что-то вроде истории обратного поиска, но он только ищет имена папок и дает мне абсолютные пути.
По сути, это дало бы результаты, аналогичные использованию, !?
но только сопоставляя команды с cd впереди, вы можете просматривать результаты и полные пути.
Пока что лучшее решение, которое я нашел, - это отметки .
Ответы:
Посмотрите на autojump :
источник
Есть
это команда «cd [space] [дефис]», которая переходит в каталог, в котором вы были, по сути, «история глубины 1». Повторное «cd -» переключает назад и вперед между двумя каталогами.
Цитирование справочной страницы:
К сожалению, я не знаю реальной встроенной истории каталогов.
источник
pushd dir
popd
пара, которая может хранить вашу историю стека каталогов. Это действительно полезно в сценариях, которые работают в разных папках.pushd
иpopd
, и это также упоминается здесь уже.Bash имеет pushd / popd / dirs. У меня есть это в моем .bashrc для автоматического перемещения каталогов в стек bash.
Поместите их, используя
popd
и отобразите стек, используяdirs
источник
У меня был хороший опыт работы с z-jump. Это позволяет завершать, хотя только для конечного пункта назначения, не проходя по пути. Тем не менее, он показывает полный путь после завершения вкладки.
источник
Просто чтобы поделиться своим собственным опытом, я написал простой скрипт для удовлетворения этого требования некоторое время назад, он переопределяет встроенную команду cd простой функцией, которая добавляет новое местоположение каталога в файл истории, затем используется скрипт на python предоставляет интерфейс bash, который динамически обновляет упорядоченный список каталогов при вводе условий поиска, что напоминает поиск команды bash в обратном порядке.
Он доступен на git-hub для любопытных.
источник
Я хотел бы рекомендовать мой
ltcd
для быстрой навигации по истории каталогов:https://github.com/dczhu/ltcd
Это обеспечивает следующие функции, чтобы сделать жизнь проще:
источник
Я создал скрипт , который по функциональности похож на
dirs -v
команду oh-my-zsh, которая работает на bash. Если вы когда-либо использовали oh-my-zsh , вы могли заметить, что история каталогов, предоставляемая командой,dirs -v
будет сбрасываться каждый раз, когда вы выходите из терминала. Однако этого не произойдет, если вы воспользуетесь этим скриптом .Функциональность:
Показать список 10 последних использованных каталогов с
d
.Перейдите к любому каталогу в списке, набрав номер каталога в списке. Вам нужно использовать 0 вместо 10, чтобы перейти к 10-му каталогу.
Путь к каталогу будет помещаться в верхнюю часть списка каждый раз, когда вы используете
v
( vim ) для редактирования файлов илиo
( xdg-open ), чтобы открыть файл из этого каталога. Или, если хотите, каждый раз, когда вы посещаете каталог.Вы можете увидеть это в действии здесь .
источник
Ну, вы можете добавить этот фрагмент кода к вашему
~/.bashrc
, которыйпредоставляет пользовательскую команду CD
и предоставляет команду поиска в истории CD.
Конечно, команда cdhist, которую я предоставил, очень проста, а не то, что вы хотели; но возможно использовать операторы case или расширение параметров для достижения чего-то похожего на то, что вы хотите.
Вы даже можете добавить некоторую функцию «Программируемое завершение», которую можно использовать для добавления полной
cd /path/to/mydir
команды, основанной на уникальной подстроке/path/to/unique/mydir
, хотя для этого метода все равно потребуется ввод текстаcd unique/mydir<tab>
.источник
dirs
команду bash, которая делает то же самоеmy_dirs
, но в одной строке.alias cd=pushd
будет самая элегантная форма.Вы можете создать свою собственную
cd
команду сpushd
,popd
,dirs
встроенными командами.использование
cd --
(список текущей истории)cd -num
(перейдите в каталог num)cd -
(перейти в предыдущий каталог)источник
Я собрал этот инструмент, который сочетает в себе предыдущие решения для хранения всеобъемлющей глобальной истории CLI с интерактивным инструментом под названием percol (сопоставленным с C ^ R). Я использую его для получения команд по месту их выполнения или для поиска каталога по команде. Это все еще замечательно на первой машине, которую я начал использовать, теперь с> 2-летней историей CLI.
Инструмент grep работает как по пути, так и по команде, но все же может быть полезен для вас. Смотрите также 'dirs -v' в zsh
https://github.com/gawells/ariadne
источник
cd share/man
работает только если я уже в / usr.