Comment répertorier tous les fichiers du téléphone Android en utilisant le shell adb?

89

J'essaie juste d'écrire un shell bash pour mon téléphone Android.
Lorsque je veux lister tous les fichiers de mon téléphone Android. J'ai trouvé que le terminal shell Android ne prend pas en charge la findcommande.
Alors je veux juste savoir quelle est la meilleure façon de parcourir les sdcardfichiers?

friddle
la source
3
Notez que sur un appareil Android sécurisé, l'utilisateur du shell n'a pas l'autorisation d'accéder à de nombreux fichiers et de répertorier de nombreux répertoires. Sur un émulateur ou un périphérique d'ingénierie où ADB s'exécute en tant que root, l'accès à ceux-ci devient possible.
Chris Stratton
Je le sais, mais je veux juste parcourir le fichier de la sdcard.Je pense que cela ne peut pas impliquer l'autorisation root. en tout cas merci!
friddle

Réponses:

126

Je me trompe peut-être mais "find -name __" fonctionne très bien pour moi. (Peut-être que c'est juste mon téléphone.) Si vous voulez simplement lister tous les fichiers, vous pouvez essayer

adb shell ls -R /

Cependant, vous avez probablement besoin de l'autorisation root.

Edit: Comme d' autres réponses suggèrent, l' utilisation lsavec grepcomme ceci:

adb shell ls -Ral yourDirectory | grep -i yourString

par exemple.

adb shell ls -Ral / | grep -i myfile

-iest pour ignorer-cas. et /est le répertoire racine.

pt2121
la source
2
La plupart des appareils Android de version officielle n'ont pas de findcommande, bien que ceux avec des ROM personnalisées ou d'autres installations de busybox le puissent.
Chris Stratton
1
! mon téléphone ne peut pas obtenir la permission root je suis très désolé pour that.if je reçois le premission.i racine installera le busybox de busybox.the est des outils très utiles
Friddle
Si vous ne voulez que la carte sd, remplacez le / dans cette commande par le point de montage de la carte sd sur votre système, puis non, vous ne devriez pas avoir besoin de l'exécuter en tant que root.
Chris Stratton
29

Ouvrez le type cmd adb shellpuis appuyez sur Entrée. Tapez lspour afficher la liste des fichiers.

fauzi
la source
À l'invite DOS, adb shell ls -R > junkrépertorie tous les fichiers et met les résultats dans un fichier junkque vous pouvez ensuite modifier via le Bloc-notes ou autre et en voir plus que vous ne le souhaitez, mais vos fichiers aussi!
DSlomer64
4

juste pour ajouter la commande complète:

adb shell ls -R | grep filename

c'est en fait une recherche assez rapide sur Android

renégat
la source
2
Cela ne vous donnera pas le chemin du fichier, il ne rapportera que s'il existe. Pour obtenir le chemin, je demanderais à grep de signaler également tous les répertoires explorés ls, comme ceci:adb shell ls -laR | grep -E "filename|:$"
volpato
1
j'aime utiliserls -lrta
john Smith
3

Cette commande montrera également si le fichier est caché adb shell ls -laR | grep filename

Misha
la source
1

Certains téléphones Android contiennent Busybox. C'était difficile à trouver.

Pour voir si busybox était là:

ls -lR / | grep busybox

Si vous savez que c'est autour. Vous avez besoin d'un espace de lecture / écriture. Essayez votre lecteur flash, / sdcard

cd /sdcard
ls -lR / >lsoutput.txt

télécharger sur votre ordinateur. Téléchargez le fichier. Obtenez un éditeur de texte. Recherchez busybox. Va voir dans quel répertoire le fichier a été trouvé.

busybox find /sdcard -iname 'python*'

pour faciliter l'accès à busybox, vous pouvez:

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

Ou n'importe quel autre endroit que vous voulez. R

historystamp
la source