Можно ли отредактировать команду ubuntu cd или добавить функциональность с помощью bash?

So,

cd .. возвращается в родительский каталог.

Я хотел бы добавить функциональность, чтобы я мог печатать ...

cd ...

... и перейти в родительский каталог родительского каталога.

и, следовательно, переходите на дополнительный уровень за каждый дополнительный .

Идея пришла из SO-ответа о скрипте под названием «up», который должен делать, по сути, то же самое. Но мне любопытно, можно ли просто добавить к команде cd.

После быстрого поиска я заметил, что cd - это встроенный bash, поэтому я не думаю, что можно будет редактировать какой-либо исходный код. Можно ли создать новый сценарий _6 _ (.sh), который будет выполняться вместо встроенной команды cd, если указаны допустимые аргументы? Какими еще способами это можно было бы сделать?

Примечание: это больше для обучения, чем для практического применения, я просто думаю, что это было бы круто. Спасибо!


person Charles    schedule 23.02.2015    source источник
comment
. .. не относится к команде cd. Он расширяется вашей оболочкой, например, bash. Ваша оболочка расширяет . до текущего рабочего каталога и .. до родительского рабочего каталога.   -  person hetepeperfan    schedule 23.02.2015
comment
Используя эту логику, могу ли я создать какой-нибудь интерпретатор, чтобы преобразовать (.. + . * n) в действительный каталог?   -  person Charles    schedule 23.02.2015


Ответы (2)


Вы можете определить псевдоним в своем .bashrc файле:

alias ...='cd ../..'

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

person Paulo Fidalgo    schedule 23.02.2015
comment
простой, но эффективный. - person hetepeperfan; 23.02.2015
comment
Я не думал об использовании псевдонима. Я обязательно рассмотрю что-то подобное. - person Charles; 23.02.2015

Вы можете добавить следующие строки в файл ~/.bashrc

alias cd..='cd ..'
alias cd...='cd ../..'

и так далее.

После добавления этих строк закройте терминал и откройте новый. Здесь вы можете cd.. перейти на один каталог вверх, cd... чтобы перейти на два каталога вверх ...

person Sebastian Stigler    schedule 23.02.2015