
Tengo un directorio llamado "público" que contiene miles de subdirectorios, por ejemplo:
public/63a/e9b/79a/file.pdf
public/64a/2cd/184/other_file.pdf
...
Mi objetivo es mover todos los archivos contenidos en esos subdirectorios al directorio principal (es decir, público).
Supongo que necesito una función recursiva para hacer eso.
Alguien me puede ayudar ?
Respuesta1
La herramienta para hacerlo ya forma parte del entorno estándar de Linux:
find public -type f -exec mv {} public/ \;
Explicación:
Queremos find
archivos pero no directorios ( -type f
) en public
su subestructura y en cada archivo encontrado ejecutar ( -exec
) un comando, que es moverlo (representado por {}
) a público.
El punto y coma escapado simplemente marca el final de la -exec
secuencia.