
Я пытаюсь задать сочетание клавиш, чтобы мне не приходилось так часто вводить очень длинное имя каталога. В ~/.bash_profile
, я делаю что-то похожее на:
export CDPATH=".:~:/This/Is/A/Really/Long/Path/That/Ends/With/My Name"
Как экранировать/сохранить пробел в имени каталога при попытке задать эту переменную?
Я пробовал разные решения (использование одинарных кавычек против двойных, экранирование с помощью обратной косой черты (я даже пробовал 'My\\\ Name'
), вообще без кавычек и комбинации этих вариантов).
Спасибо.
решение1
export CDPATH=".:~:/This/Is/A/Really/Long/Path/That/Ends/With/My Name"
все должно быть в порядке
я пробовал
cd /tmp/
mkdir "aaa bbb"
mkdir "aaa bbb/a" "aaa bbb/b"
export CDPATH="/tmp/aaa bbb"
и
cd a
работает просто отлично
Также, если вы хотите быстрее сменить каталог, вы можете создать псевдоним.
alias longpath="cd '/This/Is/A/Really/Long/Path/That/Ends/With/My Name'"
но это не решит проблему копирования в этот каталог
cp longpath
не сработает.
Возможно, он работает неправильно, и вам следует установить и включить bash-completion — он определяет функцию _cd и устанавливает ее в качестве средства завершения для команды cd, которая переопределяет автодополнение по умолчанию и включает $CDPATH.