首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Linux中&&、&、|、||等特殊符号的作用

Linux中&&、&、|、||等特殊符号的作用

作者头像
用户10125653
发布2022-11-10 21:50:16
发布2022-11-10 21:50:16
2.7K0
举报
文章被收录于专栏:changechange

符号 && 和 &

java -jar test.jar > info.log &

& 表示后台运行与nohup 命令功能差不多

cd /opt/test && java -jar test.jar

符号&& 表示前一条命令执行成功时,才执行后一条命令。

符号| 和 ||

ps -ef | grep java

符号 | 表示管道,上一条命令的输出,作为下一条命令参数(输入)。

test -das || ls

|| 表示上一条命令执行失败后,才执行下一条命令。

符号> 和 >>

java -jar test.jar > info.log 2>&1 &

符号 > 表示将java 日志重定向输入到info.log

  • 0 – stdin (standard input) 标准输入
  • 1 – stdout (standard output) 标准输出
  • 2 – stderr (standard error) 标准错误输出

2>&1 将标准错误追加到info.log

符号 >>表示stdout标准输出信息重定向输出,覆盖写。

&> 表示stdout标准输出和stderr错误输出信息,重定向输出,覆盖写。

2>&1 表示把标准错误的输出重定向到标准输出1,&指示不要把1当做普通文件,而是fd=1即标准输出处理。

2>1 表示把标准错误的输出重定向到1,但这个1不是标准输出,而是一个名为1的文件。

  • 空设备文件/dev/null
  • 标准输入(stdin) 代码为0,实际映射关系:/dev/stdin -> /proc/self/fd/0
  • 标准输出(stdout)代码为1,实际映射关系:/dev/stdout -> /proc/self/fd/1
  • 标准错误输出(stderr)代码为2,实际映射关系:/dev/stderr ->/pro/self/fd/2

command>a 2>1 、command>a 2>a 与 command>a 2>&1的区别

  • command>a 2>&1 等价于 command 1>a 2>&1
  • 意思为执行command产生的标准输入重定向到文件a中,标准错误也重定向到文件a中。
  • command>a 2>a 不等价于 command 1>a 2>&1,其区别如下:
  • command>a 2>a打开文件两次,而command 1>a 2>&1只打开文件一次;
  • command>a 2>a由于打开文件两次,导致stdout被stderr覆盖;
  • 从IO效率上来讲,command 1>a 2>&1比command 1>a 2>a的效率更高。
  • command>a 2>1 等价于 command 1>a 2>1
  • 意思为执行command产生的标准输入重定向到文件a中,标准错误重定向到文件1中。
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-10-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 符号 && 和 &
  • 符号| 和 ||
  • 符号> 和 >>
  • command>a 2>1 、command>a 2>a 与 command>a 2>&1的区别
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档