У меня есть каталог под названием «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. Спасибо.
У вас есть три варианта:
""
) Создание каталога:
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 kbd> упрощает этот процесс и избавляет от необходимости избегать пробелов вручную.
Я только что создал ту же папку в / home / abed, использовал завершение вкладки, и это сработало. Смотрите изображение ниже. Если папка была создана в другом месте, вам придется перейти в это место, прежде чем вы сможете записать компакт-диск в свою папку.
Это тоже нормально. См. Изображения
Укажите ваше имя в кавычках.
cd 'foo bar baz literal string'
В оболочке ничего не интерпретируется внутри одинарных кавычек, поэтому вы должны быть осторожны с необычными символами.