13 votes

Commande adb pour rechercher le système de fichiers

Y a-t-il une commande adb similaire à "locate" ou "grep" qui pourrait m'aider à trouver un fichier sur mon appareil Android ?

Je suis curieux de adb en particulier, pas d'une application de recherche.

EDIT: "find" a été suggéré, mais sur mon appareil ICS :

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

Sur mon appareil Gingerbread, cela fonctionne, cependant. (Sauf que je n'ai pas rooté cet appareil donc il manque d'autorisation.)

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

0 votes

Busybox fournira grep mais pas locate (à ma connaissance).

1 votes

La fonction est également disponible sur les appareils en stock, je crois.

2 votes

Au moins sur ICS, cela me dit "introuvable : non trouvé". :(

10voto

Chahk Points 19297

La commande find fonctionne bien dans adb shell. La syntaxe est find /chemin -name nom_fichier. Pour rechercher dans des zones en lecture seule, vous aurez besoin des droits root. Si la commande find n'est pas disponible sur votre appareil particulier, vous devrez peut-être installer BusyBox (recherchez sur le Market.)

Par exemple,
adb shell find / -name *maps*
trouvera tous les fichiers contenant le mot "maps" à travers tout le système de fichiers.

6 votes

Si cette commande vous bombarde avec /somedir/: Permission denied, ajoutez 2>/dev/null à la commande pour dissimuler les messages d'erreur.

1 votes

find -> /system/bin/sh: find: commande introuvable — pas de chance. Comment puis-je installer find sur un appareil défectueux dont le fabricant a décidé de ne pas inclure find dans le firmware?

0 votes

@DisplayName avez-vous trouvé un moyen d'installer find ???

6voto

gavenkoa Points 293

L'utilitaire find est inclus dans BusyBox ou un autre tiers.

Pour utiliser les capacités natives, essayez (ls -R sur Android, grep sur PC) :

adb shell ls -lR / | grep 'REGEX'

3voto

user2312654 Points 21

"find" est une application en ligne de commande qui pourrait être normalement installée comme suit : 1. un exécutable binaire (sur la plupart des machines de bureau) ou 2. quelque chose de petit qui fait beaucoup de choses dont l'une est "find" ou 3. pourrait ne pas être disponible car les fabricants de téléphones n'aiment pas que les utilisateurs aient trop de contrôle sur leurs téléphones

Il est très probable que vous ayez un appareil ICS de marque (par exemple samsung) - les fabricants veulent avoir plus de contrôle sur l'appareil que le propriétaire lui-même. Accédez au root, puis installez busybox. L'appareil se nomme très probablement "/system/bin/toolbox" - vous pourriez exécuter "/system/bin/toolbox find" mais il est probable qu'il renvoie "outil inexistant" car le fabricant l'a intentionnellement supprimé de l'appareil.

Il est cependant possible que votre appareil ait la fonctionnalité dans sa boîte à outils intégrée - mais simplement pas "symlinkée"... si "/system/bin/toolbox find" exécute la fonctionnalité alors vous pourriez utiliser la commande "ln /system/bin/find toolbox" (j'ai peut-être mélangé l'ordre des paramètres). Avant d'exécuter "ln ...", vous devez remonter l'appareil en mode lecture-écriture (soit en utilisant "adb root" ou "su; mount -o remount,rw /system"

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X