开发者

Linux命令如何输入输出重定向、追加

目录
  • 简介
  • 重定向符号
  • 输入重定向
    • <
    • <<
  • 输出重定向
    • >
    • >>
  • cmd >/dev/null 2>&1
    • cmd >> file 2>&1
      • 总结

        简介

        本文介绍linux中的输入输出重定向、js追加。

        Linux是通过文件描述符来控制输入和输出的,如下:

        字段描述文件描述符默认设备
        stdin标准输入流0终端(键盘)
        stdout标准输出流1终端(显示屏)
        stderr标准错误输出流2终端(显示屏)

        重定向符号

        重定向符号

        含义

        使用方法

        解释

        <

        输入重定向

        command1 < file

        command命令操作内容会从file文件中读取,替代了键盘输入

        <<

        输入重定向,多行录入

        command1 << flag

        将开始标记flag和结束标记flag之间的内容作为输入

        >

        输出重定向,覆盖式

        command > file

        将输出重定向到file

        >>

        输出重定向,追加式

        command >> file

        将输出以追加的方式重定向到file

        2>

        错误输出重定向,覆盖式

        command 2> file

        将错误输出重定向到file

        2>

        错误输出重定向,追加式

        command 2> file

        将错误输出以追加的方式重定向到file

        &>

        输出与错误输出重定向,覆盖式

        command &> file

        输出与错误输出重定向到file

        &>>

        输出与错误输出重定向,追php加式

        command &>> file

        输出与错误输出以追加的方式重定向到file

        &合并command > file 2>&1将标准输出写到file,标准错误也写到file。

        输入重定向

        <

        目标

        • 把test文件中的内容定向到tr程序中,将小写字母转换为js大写字母。

        命令

        tr 'a-z' 'A-Z' < file1
        • 重定向符号将file1里的内容放到tr程序文件下的/fd/0里进行相应的处理。
        • tr命令用于转换或删除文件中的字符。

        执行结果

        Linux命令如何输入输出重定向、追加

        <<

        例1:展示在屏幕上

        目标

        • 把多行录入内容定向到tr程序中,将小写字母转换为大写字母。

        命令

        tr 'a-z' 'A-Z' <<EOF
        • EOF可以用任意字符替换。

        执行结果

        Linux命令如何输入输出重定向、追加

        例2:转换后输出到文件

        Linux命令如何输入输出重定向、追加

        Linux命令如何输入输出重定向、追加

        输出重定向

        >

        >会覆盖原文件内容。

        示例

        1.将正常输出写入文件

        ./test.sh >log.txt

        等价于

        ./test.sh 1>log.txt

        2. 将错误输出写入文件

        ./test.sh 2>log.txt

        3.将所有输出(正常和错误输出)都写入文件

        ./test.sh &>log.txt

        >>

        >>会追加到原文件的最后。

        1.将正常输出写入文件

        ./test.sh >>log.txt

        等价于

        ./test.sh 1>>log.txt

        2. 将错误输出写入文件

        ./test.sh 2>>log.txt

        3.将所有输出(正常和错误输出)都写入文件

        ./test.sh &>>log.txt

        cmd >/dev/null 2>&1

        • >/dev/null 2>&1 的含义是:不输出任何信息。
        • 其实也就等价于:&>/dev/null

        详解

        • >/dev/null:表示标准输出重定向到空设备文件,也就是不输出任编程客栈何信息。
        • 2>&1:标准错误输出重定向和标准输出合并,因为之前标准输出已经重定向到了空设备文件,所以标准错误输出也重定向到空设备文件。

        cmd >> file 2>&1

        • 把尼奥准输出和标准错误一起重定向到 file文件中(追加)。
        • 其实也就等价于:&>>fphpile

        总结

        以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程客栈(www.devze.com)。

        0

        上一篇:

        下一篇:

        精彩评论

        暂无评论...
        验证码 换一张
        取 消

        最新运维

        运维排行榜