Есть ли способ присвоить псевдониму команду cd, чтобы она защищала аргументы?

Когда я бегу

cd My folder

Произошла ошибка, потому что я не защищал строку.

bash: cd: My: No such file or directory

Но это работает нормально

cd "My folder"

Есть ли способ переопределить cd в качестве псевдонима или функции, чтобы она автоматически защищала все следующие аргументы как одну строку?

Этот подход не сработал, как я и предполагал:

cd () { cd "$*" ; }

1 ответ

Решение

Вы можете сделать это, но только если ваши имена каталогов не содержат несколько последовательных пробелов, и только если они не содержат специальных символов оболочки, кроме пробелов.

cd () { builtin cd "$*"; }

На практике используйте завершение: тип cd My затем нажмите Tab. Bash вставит обратную косую черту перед специальными символами.

Другие вопросы по тегам