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字符时,结束输入
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术