Как перечислить все файлы на телефоне Android с помощью оболочки adb?


89

Я просто пытаюсь написать оболочку bash для своего телефона Android.
Когда я хочу перечислить все файлы на моем телефоне Android. Я обнаружил, что терминал оболочки Android не поддерживает findкоманду.
Я просто хочу знать, как лучше всего перемещать sdcardфайлы?


3
Обратите внимание, что на защищенном устройстве Android у пользователя оболочки нет разрешения на доступ ко многим файлам и списку многих каталогов. На эмуляторе или инженерном устройстве, где ADB работает от имени пользователя root, становится возможным доступ к ним.
Крис Стрэттон

Я знаю это. Но я просто хочу путешествовать по файлу SDCard. Я думаю, что это не может включать разрешение root. в любом случае, спасибо!
friddle

Ответы:


126

Возможно, я ошибаюсь, но «find -name __» мне подходит. (Возможно, это просто мой телефон.) Если вы просто хотите перечислить все файлы, вы можете попробовать

adb shell ls -R /

Однако вам, вероятно, понадобится разрешение root.

Изменить: Как и другие ответы предполагают, использование lsс grepтак:

adb shell ls -Ral yourDirectory | grep -i yourString

например.

adb shell ls -Ral / | grep -i myfile

-iдля игнорирования. и /является корневым каталогом.


2
Большинство устройств Android с официальными findвыпусками не имеют команды, хотя устройства с пользовательскими ПЗУ или другими установками busybox могут.
Крис Стрэттон

1
мой телефон не может получить права root! мне очень жаль. если я получу root premission. я установлю busybox. busybox - очень полезные инструменты
friddle

Если вам нужна только SD-карта, замените / в этой команде точкой монтирования SD-карты в вашей системе, и тогда нет, вам не нужно запускать ее с правами root.
Крис Стрэттон,

29

Откройте тип cmd, adb shellзатем нажмите ввод. Введите 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

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*'

Или в любом другом месте, где вы хотите. р

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.