Linux 重定向: >和>>的区别,2>&1解释:

简介: Linux 重定向: >和>>的区别,2>&1解释:

 >和>>的区别:

参考大佬简单明了总结:点我传送

Linux 中,>和>> 都是将内容重定向输出到指定文件中,区别在于:

">"  :将正确命令信息输出到文件中(覆盖原内容)

"&>":将正确的和错误信息都输出到文件中

">>":将命令信息追加到文件中(原文件末尾继续追加内容)

"<"  :和">"相反,表示输入

使用Linux命令实现A.txt与b.txt合并为c.txt。c.txt不存在,合并完要删除A.txt与b.txt。

cat  A.txt >> c.txt
cat  b.txt>>c.txt
rm A.txt
rm b.txt

image.gif

示例如下:

image.gif编辑

执行效果:

第1句命令,会创建test.txt文件,并将abc写到文件中;

第2句命令,会在文件末尾,追加写入内容123;

第3句命令,会覆盖原有文件,重新写入内容def。

2>&1解释:

参考:Linux中标准输入输出解释2>&1

2>&1 :意思就是将标准错误也输出到标准输出当中

    • 0:标准输入stdin
    • 1:标准输出stdout(重定向符号>默认是1)
    • 2:标准错误输出

    示例:

     ls 2>1测试一下,不会报没有2文件的错误,但会输出一个空的文件1;

     ls xxx 2>1测试,没有xxx这个文件的错误输出到了1中;

     ls xxx 2>&1测试,不会生成1这个文件了,不过错误跑到标准输出了;

     ls xxx >out.txt 2>&1, 实际上可换成 ls xxx 1>out.txt 2>&1;重定向符号>默认是1,错误和输出都传到out.txt了。

    试想2>1代表什么,2与>结合代表错误重定向,而1则代表错误重定向到一个文件1,而不代表标准输出;

    换成2>&1,&与1结合就代表标准输出了,就变成错误重定向到标准输出.

    目录
    相关文章
    |
    3月前
    |
    Linux Shell
    在Linux中,umask 和 ulimit有什么区别?
    在Linux中,umask 和 ulimit有什么区别?
    |
    3月前
    |
    安全 Linux 应用服务中间件
    在Linux中,包过滤防火墙与代理应用防火墙有什么区别?有哪些相应的产品?
    在Linux中,包过滤防火墙与代理应用防火墙有什么区别?有哪些相应的产品?
    |
    3月前
    |
    Linux 索引
    在Linux中,符号链接与硬链接有何区别?
    在Linux中,符号链接与硬链接有何区别?
    |
    2月前
    |
    监控 Linux
    Linux系统中du命令与df命令的区别与用法
    总的来说,`du` 和 `df` 在磁盘管理中互补使用,能够提供全面的磁盘空间使用信息,帮助用户和管理员有效地监控和管理系统资源。
    52 3
    |
    3月前
    |
    缓存 Java 应用服务中间件
    在Linux中,Tomcat和Resin有什么区别,工作中怎么选择?
    在Linux中,Tomcat和Resin有什么区别,工作中怎么选择?
    |
    3月前
    |
    缓存 负载均衡 应用服务中间件
    在Linux中,Squid、Varinsh和Nginx有什么区别,工作中怎么选择?
    在Linux中,Squid、Varinsh和Nginx有什么区别,工作中怎么选择?
    |
    3月前
    |
    安全 Linux 虚拟化
    在Linux中,Jail和Chroot有何区别?
    在Linux中,Jail和Chroot有何区别?
    |
    3月前
    |
    负载均衡 应用服务中间件 Linux
    在Linux中,LVS、Nginx、HAproxy有什么区别?工作中怎么选择?
    在Linux中,LVS、Nginx、HAproxy有什么区别?工作中怎么选择?
    |
    3月前
    |
    Unix Linux C语言
    在Linux中,grep和egrep命令的区别?
    在Linux中,grep和egrep命令的区别?
    |
    3月前
    |
    Linux Apache 开发者
    在Linux中,开源软件和自由软件的区别?
    在Linux中,开源软件和自由软件的区别?