PDA

Ver la Versión Completa : [ SOLUCIONADO ] Eliminar varios archivos con partes coincidentes de una vez (shell)


SmartPhoneLover
30/05/17, 19:18:42
Buenas chic@s.
Hace unos días que estoy buscando y probando varias combinaciones con el comando shell 'rm' para eliminar varios archivos de una sola vez, con patrón/es coincidentes (deseable = *.zip). Todo mediante linea de comandos, y a ser posible en una única linea (o acción).

He probado los siguientes:
- find /sdcard/Download -type f -name '*.zip' -delete
- rm -f /sdcard/Download/*.zip
- cd '/sdcard/Download' ; find . -name '*.zip' -delete
- cd '/sdcard/Download' ; find . -name \*.zip -type f -delete


Mi dispositivo:
- Android 6.0
- Root
- Tasker (última versión)

SmartPhoneLover
30/05/17, 21:04:04
Me olvidé de comentar que dentro del encabezamiento dentral (Download), también disponndría de subcarpetas al estilo:

-/sdcard/Download-
-----------------------/Folder1-
-----------------------/Folder2-
-----------------------/Folder3-
----------------------------------/Sub1

Por lo que el comando tendría que ir recursivamente eliminando los archivos de cubcarpeta en subcarpeta. O buscar todos los archivos que concidan con la extensión deseada, y eliminar los registrados en la carpeta raíz.

WillyWeb
30/05/17, 21:10:22
Esto debería funcionar ...

cd directorio
find . -name "*.ext" -type f -delete

.. al menos eso dice el manual de BusyBox. :oh:

... el comando tendría que ir recursivamente eliminando los archivos de cubcarpeta en subcarpeta. O buscar todos los archivos que concidan con la extensión deseada, y eliminar los registrados en la carpeta raíz.

Eso es otra historia :rolleyes:

¿Quieres borrar sólo los archivos *.zip de forma recursiva o también quieres borrar las subcarpetas?

SmartPhoneLover
30/05/17, 22:19:12
Ya he probado con ese comando, y nada.
Y en respuesta a tu última pregunta: quiero borrar solo todo archivo con la extensión mensionada. Las subcarpetas se quedarían intactas.

SmartPhoneLover
30/05/17, 22:28:30
Ahhh, ok. Ya lo he solucionado.

Ayyy, con tus pistas escondidas WillyWeb xD. Pero gracias a ellas, ya he conseguido solucionar el problemilla.

Lo único que hacia falta era llamar a busybox para ejecutar los argumentos. Es decir:
--> cd '/sdcard/Download' ; /system/bin/busybox find . -name "*.zip" -type f -delete

El comando hace justo lo que quiero: eliminar todo archivo con extensión '.zip' que encuentra sea la subcarpeta que sea, dentro del directorio raíz.


Una vez más, GRACIAS WILLYWEB!

WillyWeb
31/05/17, 09:48:27
Ayyy, con tus pistas escondidas WillyWeb xD. Pero gracias a ellas, ya he conseguido solucionar el problemilla.

Seguramente la implementación del comando "find" de Android no soporta el parámetro "-delete". No es algo tan raro. Por lo que he visto incluso no lo soportan todas las versiones de BusyBox.

Me alegro si te he ayudado. :-)