我使用过的Linux命令之tee - 重定向输出到多个文件
本文链接:http://codingstandards.iteye.com/blog/833695
(转载请注明链接)
用途说明
在执行Linux命令时,我们可以把输出重定向到文件中,比如 ls >a.txt,这时我们就不能看到输出了,如果我们既想把输出保存到文件中,又想在屏幕上看到输出内容,就可以使用tee命令了。tee命令读取标准输入,把这些内容同时输出到标准输出和(多个)文件中(read from standard input and write to standard output and files. Copy standard input to each FILE, and also to standard output. If a FILE is -, copy again to standard output.)。在info tee中说道:tee命令可以重定向标准输出到多个文件(`tee': Redirect output to multiple files. The `tee' command copies standard input to standard output and also to any files given as arguments. This is useful when you want not only to send some data down a pipe, but also to save a copy.)。要注意的是:在使用管道线时,前一个命令的标准错误输出不会被tee读取。
常用参数
格式:tee
只输出到标准输出,因为没有指定文件嘛。
格式:tee file
输出到标准输出的同时,保存到文件file中。如果文件不存在,则创建;如果已经存在,则覆盖之。(If a file being written to does not already exist, it is created. If a file being written to already exists, the data it previously
contained is overwritten unless the `-a' option is used.)
格式:tee -a file
输出到标准输出的同时,追加到文件file中。如果文件不存在,则创建;如果已经存在,就在末尾追加内容,而不是覆盖。
格式:tee -
输出到标准输出两次。(A FILE of `-' causes `tee' to send another copy of input to standard output, but this is typically not that useful as the copies are interleaved.)
格式:tee file1 file2 -
输出到标准输出两次,同时保存到file1和file2中。
使用示例
示例一 tee命令与重定向的对比
[root@web ~]# seq 5 >1.txt
[root@web ~]# cat 1.txt
1
2
3
4
5
[root@web ~]# cat 1.txt >2.txt
[root@web ~]# cat 1.txt | tee 3.txt
1
2
3
4
5
[root@web ~]# cat 2.txt
1
2
3
4
5
[root@web ~]# cat 3.txt
1
2
3
4
5
[root@web ~]# cat 1.txt >>2.txt
[root@web ~]# cat 1.txt | tee -a 3.txt
1
2
3
4
5
[root@web ~]# cat 2.txt
1
2
3
4
5
1
2
3
4
5
[root@web ~]# cat 3.txt
1
2
3
4
5
1
2
3
4
5
[root@web ~]#
示例二 使用tee命令重复输出字符串
[root@web ~]# echo 12345 | tee
12345
[root@web ~]# echo 12345 | tee -
12345
12345
[root@web ~]# echo 12345 | tee - -
12345
12345
12345
[root@web ~]# echo 12345 | tee - - -
12345
12345
12345
12345
[root@web ~]# echo 12345 | tee - - - -
12345
12345
12345
12345
12345
[root@web ~]#
[root@web ~]# echo -n 12345 | tee
12345[root@web ~]# echo -n 12345 | tee -
1234512345[root@web ~]# echo -n 12345 | tee - -
123451234512345[root@web ~]# echo -n 12345 | tee - - -
12345123451234512345[root@web ~]# echo -n 12345 | tee - - - -
1234512345123451234512345[root@web ~]#
示例三 使用tee命令把标准错误输出也保存到文件
[root@web ~]# ls "*"
ls: *: 没有那个文件或目录
[root@web ~]# ls "*" | tee -
ls: *: 没有那个文件或目录
[root@web ~]# ls "*" | tee ls.txt
ls: *: 没有那个文件或目录
[root@web ~]# cat ls.txt
[root@web ~]# ls "*" 2>&1 | tee ls.txt
ls: *: 没有那个文件或目录
[root@web ~]# cat ls.txt
ls: *: 没有那个文件或目录
[root@web ~]#
问题思考
相关资料
【1】Linux公社 linux tee命令详解
【2】百度知道 linux tee 命令的详细使用, 越详细越好.
【3】脚本学习 linux tee命令: 将标准输出一分为二
【4】起航工作室 linux tee 命令详解
【5】5Linux教程 Linux tee command
PS:2011.10.09 对此文件进行了编辑。
返回 我使用过的Linux命令系列总目录
分享到:
相关推荐
7. **查找与重定向的结合**:在实际操作中,可以结合使用查找命令和重定向,例如将`find`或`grep`的输出重定向到文件,或者通过管道连接多个命令,实现复杂的数据处理和查找任务。 掌握这些知识点,能帮助你在Linux...
`tee`命令是一个非常有用的工具,它允许我们同时将命令的输出发送到标准输出和一个或多个文件。使用`-a`选项可以追加内容到文件,而不是覆盖。例如,`ls -l | tee output.log`会列出目录内容并在屏幕上显示,同时将...
`tee`命令则是一个Unix/Linux命令,它的作用是将标准输入数据复制到标准输出的同时也写入到一个或多个文件,或者重定向到其他进程。`subprocess-tee`库的出现,使得在Python程序中复用这个功能变得更加方便。 `...
- `tee`命令用于显示和重定向输出到文件,`-a`参数用于追加内容。 以上命令都是Linux操作中非常实用的工具。熟练掌握它们对于进行高效的系统管理、脚本编写和日常操作至关重要。需要注意的是,在使用这些命令时,...
### 标准IO重定向和管道 #### 一、标准输入和输出 在Linux系统中,每一个...5. **使用tee命令**,观察命令输出的同时保存到文件中。 通过这些练习,你可以更深入地理解Linux中的标准IO重定向和管道的概念及其应用。
更进一步,还可以使用`tee`命令将一个命令的输出同时发送到标准输出和一个或多个文件,或者使用`>>`重定向追加到已有文件,保持输出的可见性同时也记录历史记录。 在编程领域,尤其是在脚本编写中,管道输入输出...
Linux tee命令是一个强大的工具,它允许用户将标准输入的数据同时重定向到标准输出(通常是屏幕)和一个或多个文件。这个命令在系统管理和日志记录中尤其有用,因为它可以让我们实时查看输出的同时保存数据到文件,...
以`tee`命令为例,它在Linux中是一个非常有用的工具,可以将标准输入数据复制到标准输出的同时,也可以写入到一个或多个文件中。在Windows下使用UnxUtils提供的`tee.exe`,我们同样可以实现这个功能。例如,当我们想...
6. **重定向组合**:可以同时重定向多个流,如`program < input.txt > output.txt 2> error.log`,这会将`program`的输入设为`input.txt`,输出到`output.txt`,错误信息写入`error.log`。 7. ** tee 命令**:`tee`...
- **5.7.1 重定向标准输出**:将命令的标准输出重定向到文件。 - 示例:`ls > file.txt` - **5.7.2 重定向标准输入**:将文件作为命令的标准输入。 - 示例:`cat - **5.7.3 重定向标准错误**:将命令的标准...
- **重定向标准输出**:使用`>`运算符可以将命令的标准输出重定向到文件中,例如`ls > file.txt`会将`ls`命令的输出保存到`file.txt`文件中。 - **重定向标准错误**:类似地,使用`2>`可以重定向标准错误,例如`ls /...
41. **tee**:将输入重定向到标准输出和一个或多个文件,用于日志记录。 42. **tmpwatch**:监控和清理临时文件,确保系统整洁。 43. **touch**:更改文件的时间戳,或创建新空文件。 44. **umask**:设置文件和...
- **tee**: 将命令输出同时显示在屏幕上并写入文件。 #### 10. **初始化与系统模式切换命令** - **init**: 用于切换运行级别,如`init 3`切换到多用户模式,不带图形界面。 以上命令只是Linux强大功能的一小部分...
- **tee-从Stdin读取数据,并同时输出到Stdout和文件**:`tee`命令接收输入,并将其复制到标准输出和一个或多个文件中。这使得可以同时查看输出并保存结果。 #### 从shell眼中看世界 - **(字符)展开**:在shell中...
- `tee` 命令可以将标准输出重定向到多个地方,包括文件和屏幕。 - `pwd` 命令用于显示当前工作目录的完整路径。 #### 获取帮助 - **知识点**:获取命令的帮助信息的方法包括: - 对于内置命令,可以使用 `help`...