Змінити каталог, не набираючи компакт-диск?


17

Чи можливо зробити каталог bash зміни в командному рядку, просто ввівши цей каталог без будь-яких команд cd?

Наприклад, чи можна замість цього писати:

$ cd /tmp

Я просто хочу написати лише це:

$ /tmp

Іншими словами, якщо я викликаю каталог як додаток, я хочу встановити цей каталог як робочий.


9
Чи потрібно це басити? zsh може це зробити ( autocd)
Михайло Мрозек

1
Ні-ні-ні, мені потрібне рішення в bash =) Це головна вимога, оскільки в деяких наукових установах у холодно-холодній Росії є реліквії з лише баш, як мова сценарію;)
Володимир

Кількість введеного тексту, не набравши "cd", швидше за все, буде компенсовано відсутністю інтелектуального автозавершення за замовчуванням для шляхів. Крім того, цей спосіб змінити dirs, настільки часто, як хтось змінює dirs, трохи страшно, коли випадково запуск (потенційно шкідливої) програми (що, на вашу думку, є каталогом) стає дуже ймовірним.
michael

Це працює для мене в
ZSH

Відповіді:


36

У bash також є autocdваріант. Ви можете ввімкнути це за допомогою shopt -s autocd:

pbm@tauri ~ $ shopt -s autocd
pbm@tauri ~ $ django # Now just type this
cd ./django    <- it's done automatically
pbm@tauri ~/django $

2
Моя улюблена нова функція в bash 4 для інтерактивного використання. (Для сценаріїв це так **.) На жаль, це не в старих версіях.
Жил "ТАК - перестань бути злим"

0

Я б так уявив. У Ubuntu є якийсь механізм, що відповідає всім переходам. Коли ви запускаєте команду, яка відсутня в системі, вона іноді говорить:

Не знайдено жодної команди "foo", ви мали на увазі: ...

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

EDIT: Знайдено: https://wiki.ubuntu.com/CommandNotFoundMagic


Так, на те, що можна було б наївно очікувати, проте, bash розумніший за нас і навіть не викликає command_not_found_handle для каталогів :(
Thomas Themel

Після деяких досліджень я знайшов невеликий виправлення ( mail-archive.com/bug-bash@gnu.org/msg06761.html ), який міг би його виправити. На жаль, цей патч є неофіційним, тому його не можна використовувати з біржовою версією bash, що надається ubuntu.
Володимир
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.