Я пытался cd "~/Library/Application Support/"
-bash: cd: ~/Library/Application Support/: No such file or directory
также cd ~/Library/Application Support/
-bash: cd: ~/Library/Application Support/: No such file or directory
Вы можете использовать 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
Команда , как правило , требуется ровно один аргумент (каталог назначения). Командная строка likecd foo bar
означает запускcd
с двумя аргументами:foo
иbar
. Если вы хотите отправить только одинfoo bar
аргумент, то вам нужно заключить в кавычки пробел:(например)
cd foo\ bar
(см. Пример цитирования ниже).В вашей конкретной ситуации вы должны оставить тильду и следующую косую черту без кавычек при указании пробела в имени каталога. Ваша
cd "~/Library/Application Support/"
проба заканчивает тем, что цитирует слишком много (тильда и ее косая черта), в то время как вашаcd ~/Library/Application Support/
проба цитирует слишком мало (она не цитирует пробел в имени каталога).Наиболее распространенным решением является использование односимвольного экранирования для кавычки только пробела:
Вы также можете использовать одинарные или двойные кавычки вокруг пробела или пробела и некоторых других битов этого аргумента (но не в
~/
!):Эти виды цитат имеют разные значения, но они идентичны в этих примерах. Одинарные кавычки защищают буквенные строки, в то время как двойные кавычки допускают различные расширения и замены в указанном регионе.
Часто вы можете просто позволить оболочке сделать всю работу за вас.
Globbing (подстановочные знаки):
Вы можете использовать,
shopt -s nocaseglob
чтобы сделать регистр нечувствительным к регистру:Завершение:
Нажатие 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 ).Когда вы дважды цитируете путь, вы останавливаете расширение тильды. Таким образом, есть несколько способов сделать это:
Тильда здесь не указана, поэтому расширение тильды все равно будет запущено.
Вы можете раскрыть переменные окружения внутри строк в двойных кавычках; это в основном то, что делает расширение тильды
Вы также можете экранировать специальные символы (например, пробел) с помощью обратной косой черты.
источник
Вы также можете просто перетащить папку в окно терминала, полный путь к файлу / папке будет автоматически вставлен при перетаскивании.
источник
Вы должны покинуть пространство в "
Application Support
"Пытаться
$ cd ~/Library/Application\ Support/
источник
Если нормальные способы не работают, попробуйте заменить пробелы на
%20
.Это сработало для меня при работе с SSH и другими командами в стиле домена, такими как
auto_smb
.источник
Вы можете попробовать это для разнесенных папок / файлов: Если имя файла или папки содержит 1) имя файла .extension, команда должна быть cd ~ / file \ name.extension / (или) cd ~ / "file name.extension" /
источник