Unix/Linux 包含用于搜索文件的“find”命令,但我不知道 android 中的哪个命令可以用于搜索文件。请给我一个例子。
6 回答
您可能无法在所有设备上找到find
和grep
,因此您的安全赌注可能是
$ adb shell ls -lR | grep filename_you_want
在 Linux/OSX 上,或
> adb shell ls -lR | find "filename_you_want"
在 Windows 上。
由于find
并grep
没有安装在我使用的设备上,我正在使用以下内容:
adb shell ls -R / >tree.txt
之后,我可以使用我喜欢的任何软件(例如 notepad++ 或 grep)在我的电脑上的文件 tree.txt 中进行搜索。
find
在我的设备上对我不起作用。好像没有安装!
但是这种对我有用:
adb shell
(然后在外壳中)
ls -laR | grep filename_you_want
希望这可以帮助。
这是一个可以在 zsh 和 bash 中运行的小脚本。find /
如果您可以在 Android 设备上运行,它会模拟您可能会看到的内容:
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
需求。
一些 android 设备不包含find
或grep
在$PATH
. 但是它们可能包括busybox
. (根据我的经验,他们中的大多数都可以使用busybox
)。因此,您可以按如下方式使用它们:
亚行外壳
进而
忙箱查找。“文件.txt”
或类似的东西
希望它会有所帮助。
其他答案对我不起作用,因为它们要么没有提供我正在寻找的文件的路径,要么返回了太多没有用的文件名。
对我来说,以下工作使用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
否则我会收到很多,它会阻塞屏幕。