adb命令搜索文件系统


11

是否存在类似于“ locate”或“ grep”的adb命令,可以帮助我在Android设备上查找文件?

我对adb很好奇,而不是搜索应用程序。

编辑:已建议“查找”,但在我的ICS设备上:

hydrangea@turnsole:~$ adb shell find / -name *maps*
/system/bin/sh: find: not found

在我的姜饼设备上,它可以工作。(除非我没有植根该设备,所以它没有权限。)

hydrangea@turnsole:~$ adb shell find / -name *maps*
find: permission denied

Busybox将提供grep但不提供locate(AFAIK)。
eldarerathis 2012年

1
我相信也可以在库存设备上找到该产品。
瑞安·康拉德

2
至少在ICS上,它告诉我“发现:未找到”。:(
绣球花

Answers:


8

find命令在adb shell中运行良好。语法为find /path -name file_name。为了搜索只读区域,您将需要root用户。如果在特定设备上找不到find命令,则可能需要安装BusyBox(搜索市场)。

例如,
adb shell find / -name *maps*
将在整个文件系统中查找所有包含单词“ maps”的文件。


4
如果此命令对您造成垃圾邮件,请在该命令后/somedir/: Permission denied附加附录2>/dev/null以使错误消息静音。
onik 2012年

1
find-> /system/bin/sh: find: not found-运气不好。如何安装find到制造商决定不包含find在固件中的borked设备上?
显示名称

3

find Utility随BusyBox或其他第3部分一起提供。

要使用本机功能,请尝试(ls -R在android上,grep在PC上):

adb shell ls -lR / | grep 'REGEX'

2

“ find”是一个命令行应用程序,通常可以通过以下方式安装:1.二进制可执行文件(大多数台式机)或2.做一些小事,其中其中之一是“ find”或3.可能无法用作电话制造商不喜欢用户对手机进行过多控制

您最有可能拥有一台品牌(例如三星)ICS设备-制造商希望对设备的控制比所有者拥有的更多。在此获得root用户,然后安装busybox。设备最有可能被称为“ / system / bin / toolbox”-您可以执行“ / system / bin / toolbox find”,但由于制造商有意将其从设备中删除,因此它很可能会返回“无此类工具”。

但是,您的设备可能在其捆绑的工具箱中具有该功能-但没有“符号链接” ...如果“ / system / bin / toolbox查找”将执行该功能,则您可以使用“ ln / system / bin / find工具箱”命令(我可能弄乱了参数顺序)。在执行“ ln ...”之前,必须以读写模式重新安装设备(通过使用“ adb root”或“ su; mount -o remount,rw / system”

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.