33

Unix/Linux 包含用于搜索文件的“find”命令,但我不知道 android 中的哪个命令可以用于搜索文件。请给我一个例子。

4

6 回答 6

48

您可能无法在所有设备上找到findgrep,因此您的安全赌注可能是

   $ adb shell ls -lR | grep filename_you_want

在 Linux/OSX 上,或

   > adb shell ls -lR | find "filename_you_want"

在 Windows 上。

于 2013-06-17T13:52:41.230 回答
24

由于findgrep没有安装在我使用的设备上,我正在使用以下内容:

adb shell ls -R / >tree.txt

之后,我可以使用我喜欢的任何软件(例如 notepad++ 或 grep)在我的电脑上的文件 tree.txt 中进行搜索。

于 2013-11-06T12:36:29.787 回答
7

find在我的设备上对我不起作用。好像没有安装!

但是这种对我有用:

adb shell

(然后在外壳中)

ls -laR | grep filename_you_want

希望这可以帮助。

于 2013-06-17T13:29:59.750 回答
4

这是一个可以在 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需求。

于 2014-03-30T06:08:55.337 回答
4

一些 android 设备不包含findgrep$PATH. 但是它们可能包括busybox. (根据我的经验,他们中的大多数都可以使用busybox)。因此,您可以按如下方式使用它们:

亚行外壳

进而

忙箱查找。“文件.txt”

或类似的东西

希望它会有所帮助。

于 2014-05-13T08:25:40.553 回答
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否则我会收到很多,它会阻塞屏幕。

于 2019-12-16T17:02:10.270 回答