7

如何将 Linux 终端中命令的输出保存到文件中 | Linux 中国

 3 years ago
source link: https://zhuanlan.zhihu.com/p/336943961
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

如何将 Linux 终端中命令的输出保存到文件中 | Linux 中国

有时你需要将输出保存到文件中以备将来参考。当然你可以在 Linux 终端中复制和粘贴,但是有更好的方法可以在 Linux 命令行中保存 shell 脚本或命令的输出,让我演示给你看。

(本文字数:1659,阅读时长大约:2 分钟)

当你在 Linux 终端中运行命令或脚本时,它会在终端中打印输出方便你立即查看。

有时你需要将输出保存到文件中以备将来参考。当然你可以在 Linux 终端中复制和粘贴,但是有更好的方法可以在 Linux 命令行中保存 shell 脚本或命令的输出,让我演示给你看。

方法 1:使用重定向将命令输出保存到文件中

你可以在 Linux 中使用重定向来达成目的。使用重定向操作符,它会将输出保存到文件中而不是在屏幕上显示。

  • > 会将命令输出重定向到文件,它会替换文件中的所有内容。
  • >> 会将命令输出添加到文件现有内容的末尾。

使用标准输出重定向运算符 > 将输出重定向到文件:

command > file.txt

如果 file.txt 不存在,它会自动创建。如果你使用 > 再次重定向到相同的文件,文件内容将被替换为新的输出。

下面的示例将更好地演示它。它首先会保存 ls -l 命令的输出,然后,它将用 ls *.c 命令的输出替换文件的内容。

将命令输出重定向到文件

如果你不想在保存脚本或命令的输出时丢失现有文件的内容,可以使用 >>

command >> file.txt

下面这个例子更好地展示了它:

将命令输出重定向到文件

即使文件不存在,它也会自动创建。

温馨提示:将 Linux 命令输出和错误保存到一个文件中。

如果 Linux 命令返回错误,那么错误不会保存在文件中。你可以使用 2>&1 将命令的输出和错误保存到同一个文件中,如下所示:

command > file.txt 2>&1

通常,0 代表标准输入,1 代表标准输出,2 代表标准错误。在这里,你要将标准错误(2) 重定向(&)到与标准输出(1)相同的地址。

方法 2:使用 tee 命令显示输出并将其保存到文件中

顺便说一句,你是否注意到,当你将命令输出发送到一个文件时,你再也无法在终端上看到它了?Linux 的 tee 命令解决了这个问题。

类似于将水流发送到两个方向的三通管,tee 命令将输出发送到终端以及文件(或作为另一个命令的输入)。你可以像这样使用它:

command | tee file.txt

同样,如果该文件不存在,它将自动创建。

你还可以使用 tee 命令 -a 选项进入附加模式:

command | tee -a file.txt

让我用一些简单的例子来演示:

我在例子中使用了简单的 Linux 命令。但是请放心,你也可以使用这些方法来保存 bash 脚本的输出。

注意:将命令输出保存到文件时,避免管道陷阱

你可能对管道重定向很熟悉,可以使用它来组合 Linux 命令,但不能将输出通过管道传输到文件,它显示找不到 output.txt 命令:

这是因为管道将一个命令的输出重定向到另一个命令的输入。在本例中,你向它传递一个了一个文件名而它期望一个命令。

如果你是一个 Linux 命令行新手,我希望这个快速教程对你的 Linux 知识有所帮助。I/O 重定向是一个需要注意的基本概念。

一如既往,欢迎提出问题和建议。


via: https://itsfoss.com/save-command-output-to-file-linux/

作者:Abhishek Prakash 选题:lujun9972 译者:MjSeven 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK