es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Extraer solo archivos con una extensión específica a través de bash.

Para la primera vez, necesito crear un archivo .sh para hacer algo. Mi objetivo es descomprimir muchas carpetas zip, así que he escrito el siguiente script:

for zipfiles in /descargas/*.zip; do unzip $zipfiles; done

Puedo descomprimir todos, pero he notado que hay algunos archivos con el mismo nombre y escribiendo y puedo sobreescribir el proceso.

¿Hay alguna forma de extraer solo archivos con una extensión específica, como .docx, en lugar de la carpeta zip completa? Estoy absolutamente seguro de que no hay .docx con el mismo nombre.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Sí, puedes extraer solo archivos con una extensión específica utilizando las opciones -j y -d con el comando unzip.

    Aquí está el script modificado:

    for zipfiles in /descargas/*.zip; do 
        unzip -j -d /carpeta_extraida "$zipfiles" "*.docx"
    done
    

    Esto extraerá solo archivos docx de todos los archivos zip en el directorio /descargas y los colocará en el directorio /carpeta_extraida. La opción -j eliminará la ruta del directorio (es decir, eliminará los directorios parentales) y la opción -d especifica el directorio de destino para los archivos extraídos. El argumento "*.docx" le indica a unzip que solo extraiga archivos con la extensión .docx.

    Ten en cuenta que debes crear el directorio /carpeta_extraida antes de ejecutar el script.

Comments are closed.