Linux

关注公众号 jb51net

关闭
首页 > 网站技巧 > 服务器 > Linux > Linux输出输入重定向、tee命令

Linux输出输入重定向、tee命令使用及说明

作者:咸鱼2333号程序员

本文介绍了Linux中的输出重定向、输入重定向及tee命令,输出重定向包括覆盖、追加、管道方式;输入重定向包括基本输入重定向、多行文本重定向、字符串重定向,tee命令可将数据输出到屏幕和文件,支持追加、忽略中断信号等

一、输出重定向

是一种将命令的输出发送到文件或其他位置;

以errno命令为例,如何把errno -l查看的内容保存到文件里:

方式一:直接重定向到文件

errno -l > errno.txt

╰(*´︶`*)╯说明:> 会覆盖errno.txt的内容,如果errno.txt原本不存在,会自动创建在当前目录下,不用提前创建

方法二:追加到文件(不覆盖原有内容)

errno -l >> errno.txt

╰(*´︶`*)╯说明:>> 会将输出追加到文件末尾,而不会覆盖原有内容。

方式三:管道|

将前一个命令的输出作为后一个命令的输入

实例:同时输入到屏幕和文件

errno -l | tee errno.txt

╰(*´︶`*)╯:加-a可追加内容:

errno -l | tee -a errno.txt

二、输入重定向

允许将文件或其他来源的数据作为命令的输入

1、基本输入重定向<

将文件内容作为命令的输入

command < file.txt
#command指命令

示例:

2、<< 将多行文本作为输入

直到遇到指定的结束标记(如EOF):

3、 <<< 将单个字符串作为输入

示例:

三、tee命令详解

tee 是 Linux 中一个强大的分流命令,用于同时将数据输出到屏幕(标准输出)和文件

基本语法

command | tee [OPTIONS] FILE1 FILE2 ... 

╰(*´︶`*)╯:file1 file2……数据将被写入的文件,可指定多个

常见OPTIONS

-a追加到文件(默认是覆盖)
-i忽略终端信号(如Ctrl+C)
-p诊断非管道输入的错误

常见功能

1.同时输出到屏幕和文件

2.追加文件(不覆盖)

1/2的例子,前文已示例过了,这里不再复述

3.写入多个文件

示例:

dmesg | tee log1.txt log2.txt /dev/null
#输出的同时写入log1.txt、log2.txt、/dev/null
#/dev/null相当于一个黑洞

两个文件的MD5一致,说明写入的内容是一样的 

因为tee默认会输出到屏幕,所以想要只保存文件但不输出屏幕可以这样:

4.忽略中断信号(-i)

即使命令被中断后,已捕获的数据仍会保存

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文