linux 重定向

执行指令,由档案读入资料,经过处理将资料输出到屏幕。
读入资料,叫做standard input, 资料输出到屏幕,叫做standard output或standard error output。
输出到屏幕分为两种,指令执行成功,叫做standard output, 执行失败,叫做standard error output,这两种都会输出到屏幕。

为了将这两种输出分开,可以使用资料重定向功能,将输出传输到其他档案中。

(单箭头表示覆盖,双箭头表示增加)
stdout: 使用>或>>,符合为1
stderr: 使用2>或2>>,符号为0

例如 ll / > /home/text.txt 就将本应该在屏幕显示的内容,都写入到/home/text.txt文档中,屏幕上没有任何显示了
使用find /home -name .bashrc 时,屏幕输出
find: “/home/bbip”: 权限不够
/home/leadcom/.bashrc
find: “/home/lost+found”: 权限不够
其中有正确输出,也有错误输出
如果只使用stdout,会将正确输出指定到文件,错误输出仍显示在屏幕
find /home -name .bashrc > /home/find_test.txt
要想将正确输出和错误输出都指定到文件,则stdout和stderr都使用
find /home -name .bashrc >/home/find_test.txt 2>/home/find_test_err.txt

如果想在屏幕上不显示错误信息,则可以将错误信息重定向到/dev/null
find /home -name .bashrc 2>/dev/null
如果想将正确和错误信息都写入一个文件,且保证原来的顺序,则使用特殊写法
find /home -name .bashrc > /home/find_test_all.txt 2>&1 (注意是在原来stdout的写法最后增加2>&1表达式)
或者find /home -name .bashrc &> /home/find_test_all.txt (注意是在原来stdout的写法中间增加&符)

有输出,就会有输入,它代表将原本由键盘输入的资料,改为由档案内容来取代
(单箭头表示指定输入文件,双箭头表示结束字符)
stdin: 使用<或者<<,符号为0

什么是键盘输入
cat > /home/catfile, 执行后用键盘输入testing,按ctrl+d,就会将键盘输入的testing字符写入文件中
若想用文档内容替换键盘输入,使用stdin:
cat > /home/catfile < /home/leadcom/.bashrc
执行后就将/home/leadcom/.bashrc的内容写入到/home/catfile中
cat > /home/catfile << eof
表示检测到eof字符时,结束输入

posted @   影随风动91  阅读(18)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
点击右上角即可分享
微信分享提示