linux怎么重定向到文件和屏幕

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux怎么重定向到文件和屏幕相关的知识,希望对你有一定的参考价值。

重定向输出到屏幕的同时,另存到文件可以使用tee命令,如下:

1.查看当前目录下的文件,将所有文件名导出到/temp/dir.txt文件

dir | tee /temp/dir.txt

2.查看passwd文件,排除nologin的行,将输出结果输出在屏幕的同时,另存到login.txt文件

cat /etc/passwd |grep -v nologin |tee /temp/login.txt

参考技术A 重定向到文件可以使用>>这个符号
屏幕的话默认输出是到屏幕,不需要重定向本回答被提问者采纳

Linux中的数据重定向

重定向即指:将数据传送输出到别的地方,如设备、文件等等。那就涉及到将什么数据传送到什么地方的问题。

在linux中命令执行的起源和结果说起,看下图:

Standard input和Standard error都会输出到屏幕上,这样会将屏幕搞的非常混乱,且又是输出内容过多也不易于阅读。甚至有时候的输出内容非常重要需要保存,这是该怎么办??

答案是:数据重定向,将输出内容导入到别的地方。

linux中数据重定向的特殊符号:

  • 标准输入:代码为0,使用<或者<<
  • 标准输出:代码为1,使用1>或者1>>,也可以使用默认表示>或者>>
  • 标准错误输出:代码为2,使用2>或者2>>

>和>>的区别在于,输出内容重导向目的地的方式不一样:

>:以覆盖目的地原有数据的方式重导向
>>:以追加的方式重导向

ls /etc > list

如以上的将列出etc目录下的文件将其写入list文件。

  1. 如果list文件不存在则创建
  2. 清除list文件内容
  3. 将ls的标准输出写入list中

如果不清空list,则以追加的方式写入,使用>>

1.只需要正确的数据

使用/dev/null垃圾桶

#将find的结果中错误的输出丢弃,只显示正确的结果。避免错误数据的干扰
find /home -name .bashrc 2> /dev/null

2.既需要正确的输出又需求错误的输出数据

find /home -name .bashrc > list 2>&1
find /home -name .bashrc &> list

以上将标准输出和标准错误都写入list

3.标准输入<和<<的使用

既然使用<,肯定需要输入的来源。 < file的方式,可以将file的内容作为标准输入。

cat > back <~/.bashrc

以上同时利用 > 和 <(输入和输出重导向)备份.bashrc文件。

cat > list

以上命令将会将屏幕输入(标准输入)作为输出重导向文件list,然后使用ctrl+d退出。但是可以如下写法:

cat > list << "eof"

这样只要屏幕上输入"eof"即可退出。<<代表结束输入。

以上是关于linux怎么重定向到文件和屏幕的主要内容,如果未能解决你的问题,请参考以下文章

Linux管道符和重定向与环境变量

Linux管道符重定向与环境变量

Linux就该这么学——初识重定向

Linux命令执行的屏幕输出内容重定向到日志文件

linux中的管道符重定向于环境变量

Linux用户