0 votes

adb shell supprime le répertoire avec les patenthesis Windows

J'essaie de supprimer un répertoire qui contient des parenthèses dans son nom. Jusqu'à présent, j'ai essayé :

adb shell rm -r "sdcard/music/SomeArtist - (good stuff)"

Et je comprends :

/system/bin/sh: syntax error: '(' unexpected

Je suis sous Windows. Une suggestion ? Salutations

0voto

Andy Brudtkuhl Points 1714

Le problème est que les guillemets sont interprétés deux fois : une première fois par le shell Windows lorsqu'il analyse les données de l'utilisateur. adb et à nouveau par le shell Android. Rappelez-vous que adb shell foo ouvre un shell sur le périphérique et exécute le programme foo commander là-bas. W

adb shell rm -r "sdcard/music/SomeArtist - (good stuff)"

Windows utilise les guillemets pour considérer le chemin entier comme un seul argument, puis les supprime. La commande qui est réellement envoyée à l'appareil est donc la suivante

rm -r sdcard/music/SomeArtist - (good stuff)

et l'interpréteur de commandes sur le périphérique interprète le ( comme une expansion spéciale de la coquille. Il y a deux façons d'éviter cela. La première consiste à doubler les guillemets, de sorte qu'il en reste un ensemble lorsque la commande parvient au périphérique :

adb shell rm -r "\"sdcard/music/SomeArtist - (good stuff)\""

La seconde, plus généralement utile, consiste à éviter d'essayer de tout faire en même temps. Utilisez adb shell pour ouvrir un shell interactif sur l'appareil, puis

rm -r "sdcard/music/SomeArtist - (good stuff)"

dans ce shell pour exécuter la commande que vous voulez. Vous pouvez utiliser ctrl - d pour quitter le shell quand vous avez terminé.

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