команда adb для пошуку файлової системи


11

Чи є команда adb, схожа на "locate" або "grep", яка допомогла б мені знайти файл на моєму пристрої Android?

Мені цікаво конкретно adb, а не пошуковий додаток.

EDIT: "знайти" було запропоновано, але на моєму пристрої ICS:

hydrangea@turnsole:~$ adb shell find / -name *maps*
/system/bin/sh: find: not found

На моєму Пряничному пристрої він працює. (За винятком того, що я не вкоренив цей пристрій, тому він не має дозволу.)

hydrangea@turnsole:~$ adb shell find / -name *maps*
find: permission denied

Busybox надасть, grepале ні locate(AFAIK).
eldarerathis

1
знаходження доступне на приладових пристроях, я теж вірю.
Райан Конрад

2
Принаймні, на ICS це говорить мені "знайти: не знайдено". :(
Гортензія

Відповіді:


8

Команда find добре працює в оболонці adb. Синтаксис є find /path -name file_name. Для пошуку лише для читання областей вам знадобиться корінь. Якщо команда find недоступна на вашому конкретному пристрої, можливо, вам доведеться встановити BusyBox (пошук на ринку.)

Наприклад,
adb shell find / -name *maps*
знайдете всі файли, які містять слово "карти" у всій файловій системі.


4
Якщо ця команда спамує вас, /somedir/: Permission deniedдодайте 2>/dev/nullдо команди відключення повідомлень про помилки.
onik

1
find-> /system/bin/sh: find: not found- від удачі. Як встановити findна захищений пристрій, який виробник вирішив не включати findдо прошивки?
Відобразити ім'я

3

find утиліта постачається разом з BusyBox або іншою 3-ю частиною.

Для використання вбудованих можливостей спробуйте ( ls -Rна android, grepна ПК):

adb shell ls -lR / | grep 'REGEX'

2

"find" - це програма командного рядка, яка зазвичай може бути встановлена ​​у вигляді: 1. бінарного виконуваного файлу (більшість настільних машин) або 2. чогось маленького, що робить багато речей, коли одна з них "знайти" або 3. може бути недоступною як телефон виробники не люблять, щоб користувачі мали надто великий контроль над своїми телефонами

Швидше за все, у вас є один фірмовий (наприклад, Samsung) пристрій ICS - виробники хочуть мати більше контролю над пристроєм, ніж власник. Отримайте корінь там, а потім встановіть зайнятий. Пристрій, швидше за все, називається "/ system / bin / toolbox" - ви можете виконати "/ system / bin / toolbox find", але це, ймовірно, поверне "немає такого інструменту", оскільки виробник навмисно видалив його з пристрою.

Однак можливо, що ваш пристрій має функцію в комплекті пакетів інструментів, але просто не "пов'язаний" ... якщо "/ system / bin / toolbox find" буде виконувати цю функцію, тоді ви можете використовувати "ln / system / bin / find команда "(я, можливо, зіпсував порядок парам). Перш ніж виконати "ln ...", ви повинні перезавантажити пристрій у режимі читання-запису (використовуючи "корінь adb" або "su; mount -o remount, rw / system"

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.