El problema es que las comillas se interpretan dos veces: una vez por la shell de Windows cuando analiza el comando adb
, y nuevamente por la shell de Android. Recuerda que adb shell foo
abre una shell en el dispositivo y ejecuta el comando foo
allí. Cuando ejecutas
adb shell rm -r "sdcard/music/SomeArtist - (good stuff)"
Windows está utilizando las comillas para ver todo el camino como un solo argumento, y luego las elimina. El comando que realmente se envía al dispositivo es entonces
rm -r sdcard/music/SomeArtist - (good stuff)
y la shell en el dispositivo interpreta el (
como una expansión especial de la shell. Hay dos maneras de evitar esto. Una forma es duplicar las comillas, de modo que todavía quede un conjunto cuando el comando llegue al dispositivo:
adb shell rm -r "\"sdcard/music/SomeArtist - (good stuff)\""
La segunda, y más útil en general, es evitar tratar de hacer todo de una sola vez. Usa adb shell
para abrir una shell interactiva en el dispositivo, y luego
rm -r "sdcard/music/SomeArtist - (good stuff)"
dentro de esa shell para ejecutar el comando que deseas. Puedes usar ctrl-d para salir de la shell cuando hayas terminado.