📅  最后修改于: 2020-12-08 03:00:32             🧑  作者: Mango
Linux tee命令与'cat'命令非常相似,只有一个区别。它将stdin放在stdout上,并将它们放入文件中。它是通过管道与其他命令一起使用最多的命令之一。它允许我们编写从std输入到std输出的所有内容。 (可选)它提供对一个或多个文件的写入。命令名称tee来自管道中使用的T分离器。
tee
以下是一些有用的选项,可以与tee命令一起使用,以使其更加具体:
-a,–append:用于将数据附加到给定的文件,它不会覆盖数据。
-i,-ignore-interrupts:用于忽略中断信号。
-p:用于诊断写入非管道的错误。
–output-error [= MODE]:用于设置写错误模式下的行为。
–help:用于显示帮助文档。
–version:用于显示版本信息。
让我们看一下tee命令的以下示例:
tee命令用于将标准输入写入标准输出和文件。在管道后使用。要写入标准输出和文件,请在管道后指定tee命令并提供文件名。考虑以下命令:
cat weeks.txt | tee newfile.txt
上面的命令会将“ weeks.txt”的输入写入“ newfile.txt”。考虑以下输出:
从上面的输出中,使用tee命令创建文件'newfile.txt'。
“ -a”选项与tee命令一起使用,以附加输出并将其写入文件。考虑以下命令:
echo 'Saturday and Sunday are week offs' | tee -a newfile.txt
上面的命令会将指定的输入附加到'newfile.txt'。考虑以下输出:
从上面的输出中,指定的输入将附加到“ newfile.txt”。
写入数据状态对于进行备份或为调试目的创建数据快照非常有用。使用tee命令可以轻松完成。
要将数据状态写入文件,请执行以下命令:
ls ~/ | tee pipe1.txt | grep ^b | tee pipe2.txt | sort -r
上面的命令会将数据写入pipe1.txt。考虑以下输出:
从上面的输出中,当前工作目录数据的快照存储在“ newfile.txt”中。
tee命令允许我们写入多个文件。要写入多个文件,请在tee命令之后指定文件名,如下所示:
echo " add text" | tee file1.txt file2.txt file3.txt
上面的命令将创建所有指定的文件。考虑以下输出:
tee命令允许我们写入具有sudo特权的文件。如果我们尝试写一个由root用户拥有的文件,将会通过权限错误。但是,我们可以通过执行tee命令来提升sudo权限,如下所示:
echo "some text" | sudo tee -a
“ -i”选项用于忽略中断。如果我们要在执行期间优雅地停止和退出命令,这将很有用。它的用法如下:
command | tee -i
要限制tee命令不写入标准输出,请将其重定向到“ / dev / null”。执行以下命令:
echo "Text" | tee newfile.txt >/dev/null
考虑以下输出: