本文概述
- I / O重定向中的标准流
- 重定向到文件
- 附加
- 重定向到程序
对于重定向, 使用元字符。重定向可以到文件(外壳程序元字符是尖括号” < “ , “ > ” )或程序(外壳程序元字符是管道符号” |” )中。
I / O重定向中的标准流 bash shell在I / O重定向中具有三个标准流:
- 标准输入(stdin):stdin流编号为stdin(0)。 bash shell从stdin获取输入。默认情况下, 键盘用作输入。
- 标准输出(stdout):stdout流编号为stdout(1)。 bash shell将输出发送到stdout。输出显示。
- 标准错误(stderr):stderr流编号为stderr(2)。 bash shell将错误消息发送到stderr。错误消息显示。
覆写
带有单括号” > ” 的命令将覆盖现有文件内容。
- > :标准输出
- < :标准输入
- 2> :标准错误
句法:
cat >
<
fileName>
【Linux I/O重定向】例:
cat >
sample.txt
文章图片
查看上面的快照, 命令” cat> sample.txt” 创建了带有内容” a, b, c” 的” sample.txt” 。使用命令” cat> sample.txt” 再次创建相同的文件” sample.txt” , 这一次它覆盖了较早的文件内容, 并且仅显示” d, e, f” 。
附加 带有双括号” > > ” 的命令不会覆盖现有文件内容。
- > > -标准输出
- < < -标准输入
- 2 > > -标准错误
cat >
>
<
fileName>
例:
cat >
>
sample.txt
文章图片
查看上面的快照, 在这里我们再次在命令” cat > > sample.txt” 中使用” > > ” 创建了两个相同名称的文件。但是这次, 内容不会被覆盖, 并且所有内容都会显示出来。
重定向到程序 管道将流从一个程序重定向到另一个程序。当使用管道将一个程序的标准输出发送到另一个程序时, 第一个程序的数据将不会显示在终端上, 而只会显示第二个程序的数据。
尽管管道的功能可能看起来与” > ” 和” > > ” 的功能相似, 但有显着差异。管道将数据从一个程序重定向到另一个程序, 而方括号仅用于文件重定向。
例:
ls *.txt | cat >
txtFile
文章图片
查看上面的快照, 命令” ls * .txt | cat> txtFile” 已将所有” .txt” 文件放入新创建的文件” txtFile” 中。
推荐阅读
- Linux输入重定向
- Linux错误重定向
- Linux tr过滤器
- Linux gzip过滤器
- Linux sort过滤器
- Linux od过滤器
- Linux wc过滤器
- Linux Uniq过滤器
- Linux tee过滤器