У меня есть каталог под названием «foo bar baz blob». Как я могу
$ cd "foo bar baz blob"
Я пробовал с цитированием («и») и с экранированием пробелов (\) .Это не работает. Заполнение табуляции также не работает.
2] Я также должен выдавать команды с именами имен файлов, которые содержат пробелы. Как это сделать? Даже MidnightCommander (mc) не справляется с этим.EDIT
Более года спустя , Я, наконец, нашел источник моей проблемы. Я перегрузил встроенный cd функцией, которая автоматически перечисляет файлы измененного каталога:
$ 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. Спасибо.
Я только что создал ту же папку, в / home / abed, использовал вкладку, и она сработала. См. Изображение ниже. Если папка была создана в другом месте, вам нужно будет перейти к этому местоположению, прежде чем вы сможете записывать CD в свою папку.
Это тоже нормально. См. Изображение
Введите имя файла с одинарными кавычками.
cd 'foo bar baz literal string'
В оболочке ничего не интерпретируется внутри одинарных кавычек, поэтому вы должны быть в безопасности от наличия необычных символов.