У меня было это где-то 20 лет назад, или я мечтал об этом.
В основном:
Если, если типа blobblob
я получаю
blobblob: command not found
Справедливо.
Мне бы хотелось, чтобы, когда моя оболочка получала эти ошибки (команда не найдена), она проверяла, существует ли каталог с таким именем ('blobblob') и относится ли он cd
к этому каталогу.
Я уверен, что есть некоторые причины не делать этого или делать это с осторожностью.
Я просто думаю, что это было бы довольно опрятно, хотя, и я хотел бы попробовать это, находя где-то (как здесь!).
Я понятия не имею, как сделать своего рода программирование оболочки это может означать.
источник
shopt -s autocd
в командной строке, это сработало. Теперь я могу просто начать вводить имена каталогов и использовать автозаполнение, а затем нажать return и оболочкуcd
в каталог. Так круто !cd
это не так сложно набрать, и большинство механизмов завершения табуляции более умны, когда вы даете им больше контекста.autocd
Shopt был добавлен в Баш версии 4. Так что не доступно на MacOS (который до сих пор Баш версии 3.xx) , если заместитель, не будет установлен новый Баш (например, через самодельный).Утилита autojump обеспечивает аналогичный механизм с Наиболее загруженным списком каталогов. Это, однако, требует дополнительной утомляемости при наборе текста,
j
Spaceно это компенсируется правильным угадыванием чаще, чем нет.Это самый близкий к DWIM, который я использовал на сегодняшний день.
источник
Однажды я сделал полезный скрипт для аналогичной цели с функцией fcd для find-n-cd.
Вы вводите,
fcd foo
и может произойти 3 вещи:"no such directory " $1
Это похоже на то, что вам не нужно вводить весь путь, но вы явно вызываете функцию.
Вы должны
source
использовать функцию (source fcd.sh
|. fcd.sh
) и не можете вызывать ее как скрипт, потомуcd
что иначе это произойдет только в контексте скрипта, и после ее завершения вы сразу же вернетесь в свой начальный каталог.Так как он работает
locate
, он довольно быстро находит каталоги (но не всегда в курсе).Он не обрабатывает пробелы в именах каталогов изящно. Если у вас есть элегантное решение проблемы, я был бы счастлив.
источник
cd
автоматически, без ввода какой-либо команды. Этот ответ больше подходит для быстрой навигации по каталогу в терминале ./etc/bash.bashrc
Ubuntu есть объект,function command_not_found_handle
который выглядит так, как будто его можно изменить.Это также работает,
..в связи с тем, что вы создали собственный сценарий cdf.sh (ниже), полученный из оболочки. Для каталога в качестве параметра этот сценарий попадает только в родительский каталог для найденного каталога. Добавьте следующую строку в ваш .bashrc или .zshrc, что угодно ..
И добавьте этот код в файл ~ / bin / cdf.sh, который вам нужно создать с нуля.
источник
Поместите это в свой
~/.bashrc
источник