Как перейти к каталогу, который содержит пробел в своем имени?

47

У меня есть каталог под названием «Reader 0.5» на рабочем столе на Mac Os X. Когда я обращаюсь к каталогу в терминале, я использую следующий код:

cd /Users/niho/Desktop/Reader 0.5

но это бросает:

Данный файл или каталог отсутствует

ошибка.

Как я могу перейти в этот каталог?

Спасибо.


источник

Ответы:

64

Либо вы заключаете в кавычки имя каталога ( cd "/Users/niho/Desktop/Reader 0.5"), либо экранируете имя каталога ( /Users/niho/Desktop/Reader\ 0.5).

Joschi
источник
5
Для полноты картины вы можете также cd /Users/niho/Desktop/"Reader 0.5"cd /Users/niho/Desktop/Reader" "0.5
указать
3
Последний (инфиксные цитаты) был для меня новым. Спасибо!
Йоси
Теперь: как поместить путь с пробелами инфикса в переменную env, чтобы вы могли это сделать % cd $foo?
Богатырь
8

Вы можете покинуть пространство:

cd /Users/niho/Desktop/Reader\ 0.5
Феликс
источник
4

Как уже упоминалось, цитирование пути или экранирование от обратной косой черты будет работать.

Кроме того, bash, оболочка по умолчанию в Mac OS X, поддерживает завершение командной строки с помощью клавиши Tab. Например, если вы наберете:

cd /Users/niho/Desktop/Re

затем нажмите клавишу Tab, оболочка заполнит оставшуюся часть имени папки (при условии, что на рабочем столе нет других папок, начинающихся с «Re»), и позаботится о заключении аргументов в cd, если есть пробелы в имени каталога, который он заполняет.

Саймон Уитакер
источник
4

К вашему сведению, использование ярлыка Tab в bash будет прерываться при первом обнаружении пробела, если несколько каталогов имеют одинаковые имена. В таких случаях пользователь должен будет использовать:

cd Adobe\ Creative\ Cloud/

или что я предпочитаю,

cd 'Adobe Creative Cloud'
Рикардо Фернандес
источник
И на bash, и на zsh цитирование не работает: `` `bash 2 => cd '~ / Library /' bash: cd: ~ / Library /: нет такого файла или каталога 3 => cd ~ / Library / 4 => pwd / Users / pguruprasad / Библиотека `` `
Prasanth
-1

Вот более удобный способ, если вы хотите чаще использовать команды cd для определенных каталогов. Это позволяет избежать записи имени каталога каждый раз.

В вашем .bashrc или .profile вставьте:

# activate cdable_vars
shopt -s cdable_vars

# define shortcut for your directory, here DIR
export DIR="/Users/<username>/path/to/your/dir"

Выполните ваш скрипт один раз: . .bashrc

Затем вы можете перейти в ваш каталог следующим образом:

cd DIR

Это должно работать, даже если путь содержит пробелы.

Однако в сценариях оболочки вы должны заключить переменную в кавычки так:

cd "$DIR"
Agile Bean
источник