首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当与adb shell一起使用时,xargs的令人困惑的行为

当与adb shell一起使用时,xargs的令人困惑的行为
EN

Stack Overflow用户
提问于 2017-04-28 08:51:24
回答 2查看 476关注 0票数 0

我对下面的xargs行为感到困惑。

1这个命令起作用。

代码语言:javascript
复制
$ adb shell 'find /system/etc/permissions/ | xargs grep gid=\"system\"'
/system/etc/permissions/com.qualcomm.location.xml:    <group gid="system" />
/system/etc/permissions/platform.xml:        <group gid="system"/>
/system/etc/permissions/platform.xml:        <group gid="system"/>

2这个命令也能工作。

代码语言:javascript
复制
$ adb shell 'grep -B 4 gid=\"system\" /system/etc/permissions/*'
/system/etc/permissions/com.qualcomm.location.xml-<permission name="com.qualcomm.permission.IZAT" >
/system/etc/permissions/com.qualcomm.location.xml-    <group gid="gps" />
/system/etc/permissions/com.qualcomm.location.xml-    <group gid="net_raw" />
/system/etc/permissions/com.qualcomm.location.xml-    <group gid="net_admin" />
/system/etc/permissions/com.qualcomm.location.xml:    <group gid="system" />
-- snip -- snip --

3此命令不起作用。

代码语言:javascript
复制
$ adb shell 'find /system/etc/permissions/ | xargs grep -C 4 gid=\"system\"'
usage: grep [-EFivwcloqsHbhn] [-m MAX] [-e REGEX]... [-f REGFILE] [FILE]...
-- snip -- snip --
grep: Unknown option C

4补充资料。

代码语言:javascript
复制
$ adb shell 'grep'
usage: grep [-abcDEFGHhIiJLlmnOoPqRSsUVvwxZz] [-A num] [-B num] [-C[num]]
[-e pattern] [-f file] [--binary-files=value] [--color=when]
[--context[=num]] [--directories=action] [--label] [--line-buffered]
[pattern] [file ...]
  • 问题1:为什么3号命令不起作用?我遗漏了什么?也许我不明白xargs的行为。
  • 问题2:根据使用输出,是否有两个grep命令?与xargs一起使用的#3 grep是哪一个?

提前谢谢。

更新:

问题1解决了。使用/system/bin/grep而不是grep可以工作。但我还是不知道3号grep是从哪里来的。

EN

回答 2

Stack Overflow用户

发布于 2017-04-28 09:58:23

仔细看

代码语言:javascript
复制
usage: grep [-abcDEFGHhIiJLlmnOoPqRSsUVvwxZz] [-A num] [-B num] [-C[num]]

看起来-C不允许空白,不像-A-B。试一试

代码语言:javascript
复制
adb shell 'find /system/etc/permissions/ | xargs grep -C4 gid=\"system\"'

来验证这个假设。如果这不能修复它,请尝试使用--context=4而不是-C 4

票数 3
EN

Stack Overflow用户

发布于 2021-10-12 05:53:32

亚洲开发银行外壳'find /system/etc/ sended /\ xargs grep -C4 gid=“system”在这里看,您已经将整个命令用引号括起来并发送到adbshell,因此它使用安装在android上的xargs,这在选项上是非常有限的。

其他命令之所以有效,是因为它们使用安装在具有更多功能的windows计算机/ linux机器上的xargs。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43675997

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档