假设我有一个Bash脚本,我想用它创建一个文件。
对于另一个用例 - 说我只需要一个快速创建一些内容的文件,我不想离开命令行。也许它只是几行,或者我可能会粘贴一些示例代码进行演示。
我的问题是:
如何在Bash的命令行中创建包含内容的新文件?
答案 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允许您在命令行中键入要创建的文件的内容,甚至可以使用bash脚本创建文件。由<<
创建的heredoc通过管道传输到cat
,然后重定向到文件demofoo
:
$ cat > demofoo <<- "EOF"
> Something
> Something else
> EOF
-
之后的<<
和"
上的EOF
为optional。 -
允许选项卡缩进并将文本设置为0列,从而更容易进行可视化解析。 "
阻止参数扩展,命令替换和算术扩展,并且基本上确保文本的文字解释。
现在:
$ cat demofoo
Something
Something else
当我想演示使用静态文本创建文件时,我觉得这很有用 - 因此我觉得这比写作要好:
在demofoo中:Something Something else
heredoc不仅是明确的,它是可执行代码 - 而且它
您可以避免交互式bash会话中的EOF
- 类型字符,但这不利于脚本,因为您需要Ctrl-d。
例如:
~$ cat > foo.py
然后按Enter键。此命令告诉cat将输出重定向到文件foo.py,如果它已经存在,将覆盖它。如果我想追加我的行,我可以使用>>
代替。
Something
Something else
或者只是从示例代码中粘贴,当我完成输入文件后,我点击了Ctrl-d
。
这就是我如何在bash命令行上快速创建新文件。
答案 3 :(得分:0)
如果我不马上打开它,我会这样做:
touch ./filename.txt