0 votos

Adb shell eliminar directorio con paréntesis en windows

Estoy tratando de eliminar un directorio que contiene paréntesis en su nombre. Hasta ahora he intentado:

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

Y obtengo:

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

Estoy en Windows por cierto. ¿Alguna sugerencia? Saludos

0voto

Andy Brudtkuhl Puntos 1714

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.

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X