单词tee是字母T的意思,从外形看,T显然是一个“三通”。命令的结果默认显示在屏幕上,若命令的结果被重定向到一个文件,那么屏幕上就看不到了。如果希望命令的结果显示在屏幕上的同时,又能被重定向到一个文件,可使用三通命令tee。例如,执行命令ls-l123.log,文件123.log的信息显示在屏幕上,后面跟着管道线和teeloginfo.txt时,屏幕上显示的内容同时也存入了loginfo.txt:
可以用一张图来示意上面使用管道和命令tee的例子,如图3-3所示。
图3-3 <命令>|tee<文件>示意图
例如,查找当前目录下名字以.txt结尾的文件,并将查找结果存入txt_list:
查看一下txt_list,看看是否与上面命令的屏幕显示结果一致:
使用命令teefile时,如果file是个已经存在的文件,那么file的老内容会丢失,被新内容冲掉。例如:
使用tee命令的选项-a或--append时,即,使用命令tee-afile时,新内容会附加在文件file的后面,file的老内容不会丢失。例如:
(www.xing528.com)
如果tee命令后面的文件名用“-”代替,内容会显示在屏幕上(而不是重定向到文件),这时,相同的内容会显示两次,例如:
下面命令的作用是,从根目录开始查找名字以.txt结尾的文件,在屏幕上将显示正常信息(找到的名字以.txt结尾的文件)和错误信息(如Permission denied,有的目录用户没有权限进入搜索),找到的文件列表存入txt_list:
如果希望正常信息和错误信息都存入txt_list,用如下命令:
Bash4新增了重定向符号|&,command1|& command2等价于command1 2>&1|command2。所以上面的命令可以变为:
总结前面的内容,得到表3-5。
表3-5 常用的重定向命令
文件描述符0,1,2分别对应标准输入、标准输出、标准错误。其他的数字也能作为文件描述符进行重定向。下一节先介绍exec命令,然后继续文件描述符的讲解。初学者可以暂时跳过下一节。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。