Как перейти в каталог с пробелами?

У меня есть каталог под названием «foo bar baz blob». Как я могу

$ cd "foo bar baz blob"

Я пытался с кавычками ("и") и с пробелами (\). Это не работает. Таблицы-завершение также не работает.

Мне также нужно вводить команды с именами аргументов, которые содержат пробелы. Как это сделать? Даже MidnightCommander (mc) не может это сделать.

РЕДАКТИРОВАТЬ

Более одного год спустя я, наконец, нашел источник своей проблемы. Я перегрузил встроенный компакт-диск функцией, которая автоматически выводит список файлов измененного каталога:


$ type cd
cd ist eine Funktion.
cd () 
{ 
    if builtin cd $1; then
        ls;
    fi
}

$ cd Interner\ Speicher/
bash: cd: Interner: Datei oder Verzeichnis nicht gefunden

$ builtin cd Interner\ Speicher/

$ pwd
/run/user/1000/gvfs/mtp:host=%5Busb%3A002%2C018%5D/Interner Speicher

$ ls
Alarms   DCIM      Movies  Notifications  Podcasts   SmsContactsBackup
Android  Download  Music   Pictures   Ringtones

Решение простое: мне просто нужно поставить двойные кавычки вокруг $ 1:

if builtin cd "$1"; then

Ooof. Спасибо.

0
задан 25 May 2015 в 16:31

3 ответа

У вас есть три варианта:

  • Избегать пробелов с помощью символа обратной косой черты
  • Обернуть имя каталога в двойные кавычки ("")
  • Использовать Завершение TAB

Создание каталога:

user@pc:~/testfolder$ ls -l
total 0
user@pc:~/testfolder$ mkdir "foo bar baz blob"
user@pc:~/testfolder$ ls
foo bar baz blob

Метод 1:

user@pc:~/testfolder$ cd foo\ bar\ baz\ blob/
user@pc:~/testfolder/foo bar baz blob$ echo "This works"
This works

Метод 2:

user@pc:~/testfolder$ cd "foo bar baz blob"/
user@pc:~/testfolder/foo bar baz blob$ echo "This works, too"
This works, too

Метод 3:

user@pc:~/testfolder$ cd foo<TAB><ENTER>

На основании вашего комментария к другому ответу: для доступа к названному файлу экранирование должно быть выполнено следующим образом:

Eric\ Burdon\ -\ Starportrait\ -\ CD\ 1\ \(flac\).cue foo\ bar\ baz\ blob/

Однако использование завершения TAB упрощает этот процесс и избавляет от необходимости избегать пробелов вручную.

0
ответ дан 25 May 2015 в 16:31

Я только что создал ту же папку в / home / abed, использовал завершение вкладки, и это сработало. Смотрите изображение ниже. Если папка была создана в другом месте, вам придется перейти в это место, прежде чем вы сможете записать компакт-диск в свою папку.

enter image description here

Это тоже нормально. См. Изображения

enter image description here

0
ответ дан 25 May 2015 в 16:31

Укажите ваше имя в кавычках.

cd 'foo bar baz literal string'

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

0
ответ дан 25 May 2015 в 16:31

Другие вопросы по тегам:

Похожие вопросы: