find 和 grep - 抑制由信号 13 终止

问题描述 投票:0回答:1

如果我只想查找命令的第一个匹配项

grep
我使用这个:

find -name "*.jar" | xargs grep -al myText | head -1

而且效果很好。 但它还显示下一条消息:

xargs: grep: terminated by signal 13

是否可以抑制此消息(不显示此消息)?

shell grep pipe xargs
1个回答
0
投票

为什么会出现此错误消息?

-> 信号 13 表示文件不可读(权限错误)。

2个解决方案:

  1. 忽略此消息(丑陋)
  • 2>/dev/null
    命令后添加
    xargs
find -name "*.jar" | xargs grep -al myText 2>/dev/null | head -1
  1. 不要尝试读取不可读的文件(更好)
  • -readable
    命令添加条件
    find
    (当前用户可读)
find -name "*.jar" -readable | xargs grep -al myText | head -1
© www.soinside.com 2019 - 2024. All rights reserved.