Когда я запускаю
cd My folder
Ошибка возникает из-за того, что я не защитил строку.
bash: cd: My: No such file or directory
Но это прекрасно работает
cd "My folder"
Есть ли способ переопределить cd
как псевдоним или функцию, чтобы он автоматически защищает все следующие аргументы как одну строку?
Этот подход не сработал, как я и предполагал:
cd () { cd "$*" ; }
Вы можете сделать это, но только если ваши имена каталогов не содержат несколько последовательных пробелов, и только если они не содержат специальных символов оболочки, кроме пробелов.
cd () { builtin cd "$*"; }
На практике используйте завершение: введите cd My
, затем нажмите Tab kbd>. Bash вставит обратную косую черту перед специальными символами.