答案 0 :(得分:43)
您可能无法在所有设备上找到find
和grep
,所以可能您的安全赌注是
$ adb shell ls -lR | grep filename_you_want
在Linux / OSX上,或
> adb shell ls -lR | find "filename_you_want"
在Windows上。
答案 1 :(得分:20)
由于find
和grep
未在我使用的设备上安装,我使用以下内容:
adb shell ls -R / >tree.txt
之后,我可以使用我喜欢的任何软件(例如notepad ++或grep)在我的电脑上搜索文件tree.txt。
答案 2 :(得分:5)
find
在我的设备上对我无效。似乎没有安装!
然而,这种方式对我有用:
adb shell
(然后在shell中)
ls -laR | grep filename_you_want
希望这有帮助。
答案 3 :(得分:4)
这是一个应该在zsh和bash中运行的小脚本。它会模拟您在Android设备上运行find /
时可能会看到的内容:
adb shell ls -R / |
while read line
do
line=$(echo $line | tr -d '\r')
if [[ "$line" =~ ^/.*:$ ]]
then
dir=${line%:}
elif [[ "$line" = "opendir failed, Permission denied" ]]
then
echo "find: $dir: Permission denied"
else
if [[ "$dir" = "/" ]]; then dir=""; fi
echo "$dir/$line"
fi
done
因为它在降序之前列出了所有直接子目录,所以输出有点乱序(例如/system
会立即列出,但/system/media
不显示很久以后)。根据您的需要,您可以在脚本末尾拍摄| sort -u
,但它应该可以满足您的所有基本grep
需求。
答案 4 :(得分:3)
某些Android设备不包括find
中的grep
或$PATH
。但是,它们可能包括busybox
。 (根据我的经验,他们中的大多数人都可以使用busybox
)。所以你可以按照以下方式使用它们:
adb shell
然后
busybox找到。 " file.txt的"
或类似的东西
希望它会有所帮助。
答案 5 :(得分:0)
其他答案对我不起作用,因为它们要么没有提供我正在查找的文件的路径,要么返回了太多文件名,以至于没有用。
对我来说,以下使用busybox
起作用:
adb shell busybox find / -name <your_file_name.here> 2>/dev/null
/
告诉find
命令从根目录搜索。但是您可以使用.
来从当前目录搜索。像这样:
adb shell busybox find . -name <your_file_name.here> 2>/dev/null
2>/dev/null
使权限被拒绝的响应安静,否则我会收到很多响应,并阻塞屏幕。