如何使用终端创建一个简单的 .txt(文本)文件?

Mik*_*rth 96 command-line files

我只是想回顾一下基本的终端命令。话虽如此,如何仅使用终端创建文本文件?

Gil*_*il' 130

您不能使用终端来创建文件。您可以使用在终端中运行的应用程序。只需调用任何非 GUI 编辑器(emacs -nw, joe, nano, vi, vim, ...)。

如果您的意思是使用命令行,那么您是在询问如何使用 shell 创建文件。请参阅“终端”、“外壳”、“tty”和“控制台”之间的确切区别是什么?

使用 shell 创建文件的基本方法是使用输出重定向。例如,以下命令创建一个名为的文件,foo.txt其中包含该行Hello, world.

echo 'Hello, world.' >foo.txt
Run Code Online (Sandbox Code Playgroud)

如果你想写多行,这里有几种可能性。您可以使用printf.

printf '%s\n' 'First line.' 'Second line.' 'Third line.' >foo.txt
Run Code Online (Sandbox Code Playgroud)

您可以使用包含换行符的字符串文字。

echo 'First line.
Second line.
Third line.' >foo.txt
Run Code Online (Sandbox Code Playgroud)

或者

echo $'First line.\nSecond line.\nThird line.' >foo.txt
Run Code Online (Sandbox Code Playgroud)

另一种可能性是对命令进行分组。

{
  echo 'First line.'
  echo 'Second line.'
  echo 'Third line.'
} >foo.txt
Run Code Online (Sandbox Code Playgroud)

在命令行上,您可以更直接地使用cat. 将其输出重定向到文件并在cat的标准输入上逐行键入输入。在行首按Ctrl+D表示输入结束。

$ cat >foo.txt
第一行。
第二行。
第三行。
Ctrl+D

在脚本中,您将使用here 文档来实现相同的效果:

cat <<EOF >foo.txt
First line.
Second line.
Third line.
EOF
Run Code Online (Sandbox Code Playgroud)

如果您只想创建一个空文件,可以使用以下touch命令:如果文件不存在则创建该文件,如果存在则仅更新其最后修改日期。

touch foo.txt
Run Code Online (Sandbox Code Playgroud)

等效地:

>>foo.txt
Run Code Online (Sandbox Code Playgroud)

即打开foo.txt以进行追加,但向其中写入 0 个字节 — 这会创建文件但不会修改它。与 不同touch,如果文件已经存在,这不会更新文件的最后修改日期。

要创建一个空文件,并在文件已经存在的情况下删除文件的内容,您可以使用

>foo.txt
Run Code Online (Sandbox Code Playgroud)


Dis*_*ame 13

touch ~/Desktop/something.txt
Run Code Online (Sandbox Code Playgroud)

这将创建一个空txt文件。

或者

echo "Hello" > ~/Desktop/somethingelse.txt
Run Code Online (Sandbox Code Playgroud)

这将创建一个txt文件,上面写着“你好”。

nano ~/Desktop/anotherfile.txt
Run Code Online (Sandbox Code Playgroud)

这将~/Desktop/anotherfile.txt在 中打开nano,或者如果它不存在,它将创建并在 中打开nano

同样可以通过简单地替换nanoemacsor来完成,vim它将使用emacsorvim代替nano


小智 9

创建一个空文件只需要:

> my.txt
Run Code Online (Sandbox Code Playgroud)

  • 在某些 shell (zsh, tcsh, ...) 中,至少需要 `:&gt; my.txt`。`:` 是一个空命令。 (2认同)

小智 5

当你被卡住并且必须在命令行上创建一个多行文本文件时,一些有用的东西是这样的:

# cat <<'EOF' > textfile
> This "should"
> prove useful, 'maybe'.
> EOF
# cat textfile 
This "should"
prove useful, 'maybe'.
Run Code Online (Sandbox Code Playgroud)

您可以替换cat另一个命令,例如greppattern,并让 grep 在您的输入上完成它的工作,这将以相同的方式输出到文件。