![我想创建一个名为“Grocery List”的文件(该文件名中有 2 个单词)](https://linux22.com/image/95550/%E6%88%91%E6%83%B3%E5%88%9B%E5%BB%BA%E4%B8%80%E4%B8%AA%E5%90%8D%E4%B8%BA%E2%80%9CGrocery%20List%E2%80%9D%E7%9A%84%E6%96%87%E4%BB%B6%EF%BC%88%E8%AF%A5%E6%96%87%E4%BB%B6%E5%90%8D%E4%B8%AD%E6%9C%89%202%20%E4%B8%AA%E5%8D%95%E8%AF%8D%EF%BC%89.png)
我知道我们可以使用
cat > fire
创建一个名为“fire”的文件。但是,如果文件名包含“Grocery list”这样的 2 个单词,该如何制作呢?
自从
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
由 shell 完成,它首先发生,因此文件Grocery
被创建,然后cat list
运行 ielist
作为参数cat
,因为大概当前目录中不存在文件,因此出现丢失文件list
的错误list
。
所以,在这种情况下,本质上你正在做:
cat list > Grocery
答案2
你需要以某种方式逃离这个空间。 heemayl 给了你一个很好的答案,但我建议你也阅读这个答案以了解详细信息:为什么我的 shell 脚本会因为空格或其他特殊字符而卡住?
至于创建文件本身,您不需要使用cat
.
> file
足够。