Я знаю, что мы можем использовать
cat > fire
создать файл с именем "fire". Но если имя файла содержит 2 слова, например "Grocery list", как это сделать?
С
cat > Grocery list
выдает странное сообщение cat: list: No such file or directory
.
Помогите мне, пожалуйста.
решение1
Много способов:
Использование одинарных кавычек вокруг имени:
cat > 'Grocery list'
Использование двойных кавычек вокруг имени:
cat > "Grocery list"
Экранируйте пробел с помощью
\
:cat > Grocery\ list
Когда вы это делаете:
cat > Grocery list
Grocery
и list
воспринимаются как два слова.
Направление вывода > Grocery
выполняется оболочкой, и это происходит в первую очередь, поэтому файл Grocery
создается, а затем cat list
запускается, т.е. list
принимается в качестве аргумента cat
, так как предположительно в текущем каталоге нет файла list
, отсюда и ошибка об отсутствующем list
файле.
Итак, в этом случае, по сути, вы делаете:
cat list > Grocery
решение2
Вам нужно как-то выбраться из этого пространства. Хороший ответ дал вам heemayl, но я рекомендую прочитать и это для получения подробной информации:Почему мой скрипт оболочки тормозит пробелы и другие специальные символы?
Что касается создания самого файла, вам не обязательно использовать cat
.
> file
достаточно.