Ответы:
Вы можете использовать Tabклавишу после нажатия несколько первых символов (это будет «заполнить» остальные папки для вас , например , типа cd ~/L
Tabзаполняет cd ~/Library/
тот типа , Ap
Tabи он будет заполнить остальные для вас.
Если между словами есть пробел, и вы не хотите использовать методы, описанные выше, поставьте \
(обратную косую черту) перед пробелом, например cd ~/Library/Application\ Support
.
shopt -s nocaseglob
и bind 'set completion-ignore-case on'
сделать bash менее чувствительным к регистру.
Основная проблема здесь заключается в том, как оболочка ( bash ) делает кавычки и как это влияет на раскрытие тильды и разбиение на «слова» (аргументы для запускаемой программы).
bash обрабатывает только ведущую тильду, если она не указана. Кроме того, следующий слеш также не должен быть в кавычках.
В то же время, bash анализирует командные строки в «слова» на основе пробелов без кавычек. cd
Команда , как правило , требуется ровно один аргумент (каталог назначения). Командная строка like cd foo bar
означает запуск cd
с двумя аргументами: foo
и bar
. Если вы хотите отправить только один foo bar
аргумент, то вам нужно заключить в кавычки пробел:
(например) cd foo\ bar
(см. Пример цитирования ниже).
В вашей конкретной ситуации вы должны оставить тильду и следующую косую черту без кавычек при указании пробела в имени каталога. Ваша cd "~/Library/Application Support/"
проба заканчивает тем, что цитирует слишком много (тильда и ее косая черта), в то время как ваша cd ~/Library/Application Support/
проба цитирует слишком мало (она не цитирует пробел в имени каталога).
Наиболее распространенным решением является использование односимвольного экранирования для кавычки только пробела:
cd ~/Library/Application\ Support
Вы также можете использовать одинарные или двойные кавычки вокруг пробела или пробела и некоторых других битов этого аргумента (но не в ~/
!):
cd ~/Library/Application' 'Support
cd ~/Library/Application" "Support
cd ~/Library/App'lication 'Support
cd ~/Library/Application" Supp"ort
cd ~/'Library/Application 'Support
cd ~/"Library/Application "Support
Эти виды цитат имеют разные значения, но они идентичны в этих примерах. Одинарные кавычки защищают буквенные строки, в то время как двойные кавычки допускают различные расширения и замены в указанном регионе.
Часто вы можете просто позволить оболочке сделать всю работу за вас.
Globbing (подстановочные знаки):
cd ~/L*/Ap*
Вы можете использовать, shopt -s nocaseglob
чтобы сделать регистр нечувствительным к регистру:
cd ~/l*/ap*
Завершение:
Нажатие Tabпосле ввода cd ~/L
, вероятно, расширит его до cd ~/Library/
.
Повторное нажатие Tabпосле ввода Ap
(теперь у вас есть cd ~/Library/Ap
), вероятно, расширит его до cd ~/Library/Application\ Support/
(оболочка автоматически вставила экранирующий обратный слеш).
Вы можете использовать, bind 'set completion-ignore-case on'
чтобы сделать регистр нечувствительным к регистру:
cd ~/l
Tab→ cd ~/Library/
; ap
Tab→cd ~/Library/Application\ Support/
<kbd></kbd>
тег HTML (один из нескольких тегов HTML, поддерживаемых в уценке SE ).
Когда вы дважды цитируете путь, вы останавливаете расширение тильды. Таким образом, есть несколько способов сделать это:
cd ~/"My Code"
cd ~/'My Code'
Тильда здесь не указана, поэтому расширение тильды все равно будет запущено.
cd "$HOME/My Code"
Вы можете раскрыть переменные окружения внутри строк в двойных кавычках; это в основном то, что делает расширение тильды
cd ~/My\ Code
Вы также можете экранировать специальные символы (например, пробел) с помощью обратной косой черты.
Вы можете попробовать это для разнесенных папок / файлов: Если имя файла или папки содержит 1) имя файла .extension, команда должна быть cd ~ / file \ name.extension / (или) cd ~ / "file name.extension" /