Tengo una carpetas anuales de registros ambientales, que contienen varia información dentro, así:
- Carpeta principal 2023.zip - compuesta por 142 subcarpetas, así:
- Subcarpeta (142) Estación1.zip - compuesta por 24 registros, así:
- Sub-subcarpeta (24) mes1.xmlmes1.xsdmes2.xmlmes2.xsd etc etc etc.
Usando línea de comando, lo que quiero es tener todos los archivos .xml de cada una de las 142 estaciones en una única carpeta destino, de nombre X.
Usando
while [ "`find . -type f -name '*.zip' | wc -l`" -gt 0 ]; do find -type f -name "*.zip" -exec unzip -- '{}' \; -exec rm -- '{}' \;; done
Consigo "parcialmente" lo que quiero. Ahora tengo la carpeta
Estación01, compuesta por ficheros .xml y .xsd dentro, y debo quedarme sólo con los xml. Intenté
find ./ -type f -name "*.xml" -exec cp {} ./ \;
pero no hace nada, porque "Estación01" es un directorio y quiero que busque adentro de él. Cómo lo hago? para no ir estación por estación?
Cómo lo debo hacer?