comando adb per cercare nel filesystem


11

Esiste un comando adb simile a "individuare" o "grep" che mi aiuterebbe a trovare un file sul mio dispositivo Android?

Sono curioso di sapere come adb, non un'app di ricerca.

EDIT: "find" è stato suggerito, ma sul mio dispositivo ICS:

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

Tuttavia, sul mio dispositivo Gingerbread funziona. (Tranne il fatto che non ho effettuato il root del dispositivo in modo che non disponga dell'autorizzazione.)

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

Busybox fornirà grepma non locate(AFAIK).
eldarerathis,

1
credo sia disponibile anche su dispositivi stock.
Ryan Conrad,

2
Su ICS almeno mi dice "trova: non trovato". :(
Ortensia,

Risposte:


8

Il comando find funziona bene nella shell adb. La sintassi è find /path -name file_name. Per la ricerca di aree di sola lettura avrai bisogno di root. Se il comando find non è disponibile su un determinato dispositivo, potrebbe essere necessario installare BusyBox (cercare nel mercato).

Ad esempio,
adb shell find / -name *maps*
troverà tutti i file che contengono parole "mappe" in tutto il file system.


4
Se questo comando è spam con /somedir/: Permission deniedaccodamento 2>/dev/nullal comando per i messaggi di errore mute.
onik,

1
find-> /system/bin/sh: find: not found- per fortuna. Come posso installare findsu un dispositivo borked che il produttore ha deciso di non includere findnel firmware?
Visualizza nome

3

find l'utilità viene fornita con BusyBox o altre terze parti.

Per utilizzare le funzionalità native, prova ( ls -Rsu Android, grepsu PC):

adb shell ls -lR / | grep 'REGEX'

2

"find" è un'applicazione da riga di comando che potrebbe essere normalmente installata come: 1. un eseguibile binario (la maggior parte delle macchine desktop) o 2. qualcosa di piccolo che fa molte cose in cui una di esse è "find" o 3. potrebbe non essere disponibile come telefono ai produttori non piace che gli utenti abbiano troppo controllo sui loro telefoni

Molto probabilmente hai un dispositivo ICS di marca (es. Samsung): i produttori vogliono avere un maggiore controllo sul dispositivo rispetto al proprietario. Ottieni root lì, quindi installa busybox. Il dispositivo è probabilmente qualcosa chiamato "/ system / bin / toolbox" - è possibile eseguire "/ system / bin / toolbox find" ma è probabile che non restituisca "tale strumento" poiché il produttore lo ha rimosso intenzionalmente dal dispositivo.

È comunque possibile che il tuo dispositivo abbia la funzione nella sua casella degli strumenti in bundle - ma semplicemente non "link simbolici" ... se "/ system / bin / toolbox find" eseguisse la funzione, allora potresti usare "ln / system / bin / find toolbox "command (potrei aver incasinato l'ordine dei parametri). Prima di eseguire "ln ..." è necessario rimontare il dispositivo in modalità lettura / scrittura (utilizzando "adb root" o "su; mount -o remount, rw / system"

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.