如何使用Bash创建小文件?

时间:2013-12-19 05:55:58

标签: bash file file-io cat

假设我有一个Bash脚本,我想用它创建一个文件。

对于另一个用例 - 说我只需要一个快速创建一些内容的文件,我不想离开命令行。也许它只是几行,或者我可能会粘贴一些示例代码进行演示。

我的问题是:

如何在Bash的命令行中创建包含内容的新文件?

4 个答案:

答案 0 :(得分:4)

它类似于your 'cat' answer,但另一种方式是'echo'。首先输入带有一个引号(“)的”echo“,然后按Enter键。然后,您可以键入行并按Enter键。在最后一行,键入右引号(“),然后键入大于号(>)和所需的文件名。

echo "
> from __future__ import braces
> import antigravity" > foo.py

答案 1 :(得分:2)

使用echo怎么样?如果我要快点创建/追加到一行文件,我会这样做:

$ echo "The world is a weird, mysterious place." >> ~/diary

如果有多行,我使用cat或我最喜欢的编辑器:

$ cat >> ~/diary
The world is a weird, mysterious place.
I ran the command man ascii and was delighted.^D
$

我很多时候从网上复制脚本代码,将其粘贴到空的vim缓冲区/tmp/test.sh或类似内容中,或者用gg=G缩进,然后再进行处理。< / p>

答案 2 :(得分:1)

  

如何在Bash中创建小文件?

带有heredoc的猫

heredoc允许您在命令行中键入要创建的文件的内容,甚至可以使用bash脚本创建文件。由<<创建的heredoc通过管道传输到cat,然后重定向到文件demofoo

$ cat > demofoo <<- "EOF"
> Something
> Something else
> EOF

-之后的<<"上的EOFoptional-允许选项卡缩进并将文本设置为0列,从而更容易进行可视化解析。 "阻止参数扩展,命令替换和算术扩展,并且基本上确保文本的文字解释。

现在:

$ cat demofoo
Something
Something else

当我想演示使用静态文本创建文件时,我觉得这很有用 - 因此我觉得这比写作要好:

  在demofoo中:

Something
Something else

heredoc不仅是明确的,它是可执行代码 - 而且它

从cat输入重定向到文件

您可以避免交互式bash会话中的EOF - 类型字符,但这不利于脚本,因为您需要Ctrl-d。

例如:

~$ cat > foo.py

然后按Enter键。此命令告诉cat将输出重定向到文件foo.py,如果它已经存在,将覆盖它。如果我想追加我的行,我可以使用>>代替。

然后我输入(在每行的末尾输入),例如:

Something
Something else

或者只是从示例代码中粘贴,当我完成输入文件后,我点击了Ctrl-d

这就是我如何在bash命令行上快速创建新文件。

答案 3 :(得分:0)

如果我不马上打开它,我会这样做:

touch ./filename.txt