69 votes

Comment copier et modifier des fichiers dans le shell Android ?

Le shell Android ne dispose pas de la fonction cp commandement. Le shell Android ne dispose pas non plus de sed ou grep ou vi . Je n'ai pas adb disponible. Il y a mv mais elle refuse de fonctionner si la source se trouve sur un périphérique en lecture seule.

  1. Que faire si je dois copier des répertoires depuis un périphérique en lecture seule de manière récursive ?
  2. Comment changer une ligne dans un fichier texte (par exemple "PATH=/cache" en "PATH=/mnt/asec") ?

0 votes

L'une des solutions proposées a-t-elle fonctionné pour vous ?

0 votes

@MEGA : comme je l'ai dit, il n'y a pas d'adb installé. Je peux copier en utilisant la commande "cat src > dst", mais je ne sais pas comment le faire récursivement ?

0 votes

Je ne comprends pas. Pour accéder au shell, vous tapez ./adb shell . Si vous dites que vous n'avez pas adb disponible, comment pouvez-vous accéder au shell ?

95voto

gnclmorais Points 2288

Pour copier des répertoires, il semble que vous puissiez utiliser adb pull <remote> <local> si vous voulez copier un fichier/dossier depuis le périphérique, et adb push <local> <remote> pour copier le fichier/répertoire sur le périphérique. Sinon, pour copier un fichier, vous pouvez utiliser une astuce simple : cat source_file > dest_file . Notez que cela ne fonctionne pas pour les chemins inaccessibles à l'utilisateur.

Pour éditer les fichiers, je n'ai pas trouvé de solution simple, juste quelques solutions de contournement possibles. Essayez ce il semble que vous pouvez (après l'installation) l'utiliser pour éditer des fichiers tels que busybox vi <filename> . Nano semble être possible d'utiliser aussi.

17 votes

Malheureusement, adb pull / adb push ne fonctionnera pas avec les chemins accessibles par l'utilisateur.

2 votes

Il m'a aidé à récupérer plus de 500 photos et vidéos d'une partition de carte SD inaccessible. Merci :)

32voto

Viriatvs Points 301

Vous pouvez le faire sans les autorisations de Root :

cat srcfile > /mnt/sdcard/dstfile

0 votes

Cela fonctionne-t-il aussi pour les fichiers binaires ? ou seulement pour les fichiers TEXTE ?

0 votes

Merci. Vous m'avez fait gagner du temps

0 votes

Non. Vous ne pouvez pas copier le fichier sans les autorisations Root. J'essaie de copier data/data/my.application.Android/databases/MYDATABASE.db sur la carte SD mais j'obtiens le message Permission refusée.

17voto

p_l Points 810

La réponse la plus courante à cette question est simple : Regroupez quelques applications (busybox ?) avec votre APK (en supposant que vous voulez l'utiliser dans une application). Pour autant que je sache, la partition /data n'est pas montée noexec, et même si vous ne voulez pas déployer un APK complet, vous pouvez modifier les sources de ConnectBot pour construire un APK avec un ensemble d'outils en ligne de commande inclus.

Pour les outils de ligne de commande, je recommande d'utiliser crosstool-ng et de construire un ensemble d'outils liés statiquement (liés à uClibc). Ils sont peut-être gros, mais ils fonctionneront certainement.

9voto

kubo Points 159

Vous pouvez utiliser cat > filename pour utiliser l'entrée standard pour écrire dans le fichier. A la fin, vous devez mettre EOF CTRL+D .

4voto

jmbouffard Points 508

De même si le but est uniquement d'accéder aux fichiers sur le téléphone. Il existe un explorateur de fichiers accessible depuis la perspective Eclipse DDMS. Il vous permet de copier des fichiers depuis et vers l'appareil. Vous pouvez donc toujours récupérer le fichier, le modifier et le remettre sur l'appareil. Bien sûr, il permet d'accéder uniquement aux fichiers qui ne sont pas protégés en lecture.

Si vous ne voyez pas l'explorateur de fichiers, du point de vue du DDMS, allez dans "Window" -> "Show View" -> "File Explorer".

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X