如何使用adb shell列出android手机中的所有文件?


88

我只是尝试为Android Phone编写一个bash shell。
当我想要列出我的Android手机中的所有文件时。我发现Android Shell终端不支持find命令。
所以我只想知道哪种方式是最好的sdcard文件传输方式?


3
请注意,在受保护的Android设备上,shell用户缺少访问许多文件和列出许多目录的权限。在ADB作为root用户运行的仿真器或工程设备上,便可以访问它们。
克里斯·斯特拉顿

我知道。但是我只想移动sdcard的文件。我认为它不能涉及root权限。不管怎样,谢谢!
2013年

Answers:


125

我可能错了,但是“ find -name __”对我来说很好用。(也许只是我的电话。)如果您只想列出所有文件,可以尝试

adb shell ls -R /

不过,您可能需要root权限。

编辑:作为其他答案建议,使用lsgrep这样的:

adb shell ls -Ral yourDirectory | grep -i yourString

例如。

adb shell ls -Ral / | grep -i myfile

-i用于忽略情况。并且/是根目录。


2
大多数官方发布的android设备没有find命令,尽管那些具有自定义ROMS或其他busybox安装的设备也可以。
克里斯·斯特拉顿

1
我的手机无法获得root用户的权限!对此我感到非常抱歉。如果我获得root用户的权限,我将安装busybox。busybox是非常有用的工具
2013年

如果只需要sdcard,请用系统上sdcard的安装点替换此命令中的/,然后,不,您无需以root用户身份运行它。
克里斯·斯特拉顿

29

打开cmd类型,adb shell然后按Enter。键入ls以查看文件列表。


在DOS提示符下,adb shell ls -R > junk列出所有文件并将结果放入文件中junk,然后您可以通过记事本或其他任何方式对其进行编辑,从而看到比您想要的更多的内容,但是文件也是如此!
DSlomer64

4

只是添加完整的命令:

adb shell ls -R | grep filename

这实际上是在Android上的快速查找


2
这不会为您提供文件路径,只会报告是否存在。要获取路径,我将指示grep报告也爬过的每个目录ls,如下所示:adb shell ls -laR | grep -E "filename|:$"
volpato 2014年

1
我喜欢使用ls -lrta
约翰·史密斯

3

如果文件被隐藏,此命令还将显示 adb shell ls -laR | grep filename


1

某些Android手机包含Busybox。很难找到。

要查看busybox是否在附近:

ls -lR / | grep busybox

如果您知道它的存在。您需要一些读/写空间。尝试您的闪存驱动器/ sdcard

cd /sdcard
ls -lR / >lsoutput.txt

上传到您的计算机。上载文件。获取一些文本编辑器。搜索busybox。将看到文件所在的目录。

busybox find /sdcard -iname 'python*'

为了使busybox更易于访问,您可以:

cd /sdcard
ln -s /where/ever/busybox/is  busybox
/sdcard/busybox find /sdcard -iname 'python*'

或您想要的任何其他地方。[R

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.