美文网首页
Linux 重定向

Linux 重定向

作者: _于曼丽_ | 来源:发表于2020-10-13 08:21 被阅读0次
  • stdin 标准输入 0
  • stdout 标准输出 1
  • stderr 标准错误输出 2

一个命令的输入有三种来源:

  • 键盘 << END
  • 文件 < (一些命令直接提供文件名作为输入源,则不需要 < 重定向输入源,例如 cat hello.txt)
  • 其他命令的输出 |

一个命令的输出有三种去向:

  • 终端 (默认)
  • 文件 > >> 2> 2>> 2>&1
  • 其他命令的输入 |

输入重定向:< <<

< 将命令的输入重定向到文件内容,用于将输入源本应是键盘的命令的输入源重定向到文件内容

# 效果与 cat note.txt 相同
cat < note.txt

<< 将命令的输入重定向到键盘输入,用于将输入源本应是文件的命令的输入源重定向到键盘输入,也就是说用 << 结束符 替代文件名

# 以逐行模式进行输入,回车键换行
# 所有输入的行会在输入结束符 END 之后发送给 wc 命令
# << 后面的是结束符号,不一定是 END,可以是任何符号
[yumanli@punk web]$ wc -m << END
> abc
> END
4

标准输出重定向:> >>

将 stdout 的输出结果不显示到终端上,重定向到指定位置

> 覆盖

# 将输出结果重定向到指定文件,如果文件不存在则新建文件,如果文件存在则覆盖原有文件
cut -d , -f 1 note.csv > students.txt
# 既不想输出到屏幕,又不想输出到文件,则重定向到 /dev/null,又称黑洞文件
cut -d , -f 1 note.csv > /dev/null

>> 追加

# 将输出结果重定向到指定文件,如果文件不存在则新建文件,如果文件存在则追加到原有文件的末尾
cut -d , -f 1 note.csv >> students.txt

标准错误输出重定向:2> 2>>

将 stderr 的输出结果不显示到终端上,重定向到指定位置

2> 覆盖

# 如果 not_exist_file.csv 文件存在,则将文件内容重定向到 result.txt 文件中
# 如果 not_exist_file.csv 文件不存在,则将错误信息覆盖到 error.log 文件中
cat not_exist_file.csv > result.txt 2> error.log
# 以下结果与上面相同,2> 与 > 的顺序可以颠倒
cat not_exist_file.csv 2> error.log > result.txt

2>> 追加

# 如果 not_exist_file.csv 文件存在,则将文件内容重定向到 result.txt 文件中
# 如果 not_exist_file.csv 文件不存在,则将错误信息追加到 error.log 文件中
cat not_exist_file.csv > result.txt 2>> error.log

组合输出重定向:2>&1

将 stderr 的输出结果重定向到与 stdout 相同的地方

# 如果 not_exist_file.csv 文件存在,则将文件内容重定向到 result.txt 文件中
# 如果 not_exist_file.csv 文件不存在,则将错误信息覆盖到 result.txt 文件中
cat not_exist_file.csv > result.txt 2>&1
# 如果 not_exist_file.csv 文件存在,则将文件内容追加到 result.txt 文件中
# 如果 not_exist_file.csv 文件不存在,则将错误信息追加到 result.txt 文件中
cat not_exist_file.csv >> result.txt 2>&1

组合输入和输出重定向

[yumanli@punk web]$ sort -n << END > result.txt 2>&1
> 12
> 7
> 10
> 56
> 101
> 95
> 9
> END
[yumanli@punk web]$ cat result.txt
7
9
10
12
56
95
101

管道:|

将多个命令连接起来执行,一个命令的输出作为另一个命令的输入,命令从左向右依次执行

# du 命令的输出作为 sort -nr 命令的输入
# sort -nr 命令的输出作为 head 命令的输入
# head 命令的输出重定向到 result.txt 文件
du | sort -nr | head > result.txt

相关文章

  • Linux / Unix示例中的输入输出重定向

    Linux / Unix示例中的输入输出重定向 什么是重定向? 重定向是Linux中的一项功能,因此在执行命令时,...

  • 2019-05-21

    Linux常用命令 重定向(redirection)------本文介绍的东西,输出重定向概念、输出重定向的符号、...

  • linux重定向

    linux 重定向 的符号有 > >> < <<> >> 是输出重定向< << 是输入重定向0 用来表于标准输入1...

  • Linux重定向day13

    1.重定向概述2.重定向的输出输入3.进程管道技术 一、重定向概述 什么是重定向:Linux重定向是指修改原来默认...

  • linux 输入/输出重定向介绍

    linux 输入/输出重定向介绍 介绍 linux 内置的重定向能力提供了很多工具,使你更加轻松地完成各种各样的任...

  • shell中的重定向

    linux shell下常用输入输出操作符是: 输出重定向 输入重定向

  • Python 高级 2

    1.高级Linux命令及命令选项的使用 <1>重定向命令:> Linux允许将命令执行结果重定向到一个文件,本应显...

  • 生信人的Linux14-24

    Liunx Day15:管道和重定向 管道和重定向:> < >> << Linux: >:覆盖输出 注意文件/t...

  • Shell | 标准输入输出重定向

    一、Linux 标准输入输出 二、标准输入输出重定向 1. 标准输入输出重定向是什么? 2. 标准输入输出重定向的...

  • Linux系统介绍(四)IO重定向与管道

    IO重定向(IO redirection) Linux的有一个强大之处就是可以通过管道(Pipe)跟IO重定向将一...

网友评论

      本文标题:Linux 重定向

      本文链接:https://www.haomeiwen.com/subject/isuppktx.html