You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何抑制find与grep组合使用时出现的xargs终止信号13提示?

解决xargs输出"terminated by signal 13"提示的方法

这个提示出现的原因是:head -1获取到第一个匹配结果后就会终止进程,导致管道上游的grep被SIGPIPE信号(信号13)中断,xargs会把这个中断信息输出到标准错误。以下几种方法可以抑制这个提示:

  • 方法一:直接屏蔽xargs的标准错误输出
    把xargs和grep的错误输出重定向到/dev/null,命令修改为:

    find -name "*.jar" | xargs grep -al myText 2>/dev/null | head -1
    

    注意:这种方式会同时屏蔽grep或xargs产生的其他错误(比如文件权限不足、找不到文件等),如果不需要排查其他问题可以用这个方法。

  • 方法二:精准过滤特定错误提示
    只过滤掉"xargs: grep: terminated by signal 13"这一行错误,保留其他有用的错误信息,命令如下:

    find -name "*.jar" | xargs grep -al myText 2> >(grep -v "xargs: grep: terminated by signal 13") | head -1
    

    这里用了进程替换(>(...)),将标准错误输出传递给grep -v过滤掉指定行。

  • 方法三:替换xargs为find的-exec参数
    直接用find的-exec参数执行grep,避免xargs的介入,命令修改为:

    find -name "*.jar" -exec grep -al myText {} \; | head -1
    

    这种方式下,find会逐个调用grep处理每个jar包,当head -1终止后,后续的grep进程虽然也会收到SIGPIPE,但find不会输出类似的中断提示。

内容的提问来源于stack exchange,提问作者Alexei

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 15:22:06