GNU/Linux >> Tutoriales Linux >  >> Linux

Copie todos los archivos que coincidan con el patrón del directorio y los subdirectorios en un solo directorio

Prueba:

find src/ -type f | grep -i so$ | xargs -i cp {} dst

Si está utilizando Bash, puede activar el globstar opción de shell para hacer coincidir archivos y directorios recursivamente:

shopt -s globstar
cp src/**/*.so dst

Si necesita encontrar archivos cuyos nombres comiencen con . y/o archivos en y bajo directorios cuyos nombres comienzan con . , establece el dotglob opción también (por ejemplo, con shopt -s dotglob ). Puede configurar ambos en un solo comando:

shopt -s globstar dotglob

Probé el comando sugerido por Mike:

find src/ -type f | grep -i so$ | xargs -i cp {} dst

pero terminó volcando todos los archivos en el directorio dst con sus caminos relativos perdidos.

Para mantener las rutas relativas, el comando debe modificarse a esto:

find src/ -type f | grep -i so$ | xargs -i cp {} dst/{}

Linux
  1. ¿Concatenar archivos específicos en un solo archivo?

  2. ¿Script/comando para obtener IPs de la lista de nombres de host y combinarlos en un solo archivo?

  3. Aprenda a copiar archivos y carpetas desde/hacia otro servidor

  4. ¿Cómo mover (y sobrescribir) todos los archivos de un directorio a otro?

  5. Comando para listar todos los archivos excepto . (punto) y .. (punto punto)

Copie archivos entre Linux y FreeDOS

3 formas de extraer y copiar archivos de una imagen ISO en Linux

Cómo copiar archivos y directorios en Linux

Cómo usar el comando cp para copiar archivos y directorios

¿Cómo puedo encontrar recursivamente todos los archivos en las carpetas actuales y subcarpetas en función de la coincidencia de comodines?

Eliminar archivos coincidentes en todos los subdirectorios