Copie un solo archivo del directorio principal de forma recursiva en todos los directorios dentro

Copie un solo archivo del directorio principal de forma recursiva en todos los directorios dentro

Estoy en un servidor dedicado que usa CentOS y en este servidor tengo más de 5000 directorios en un directorio principal.

En el directorio principal tengo un index.php. Me gustaría copiar esto index.phpen los más de 5000 directorios, pero la única forma que conozco es hacerlo manualmente.

¿Hay alguna manera a través de la línea de comando de poder ingresar algo así cpy hacerlo funcionar desde el directorio? Lo copiaría en todos los directorios y subdirectorios dentro de este directorio principal en el que estoy comenzando.

Respuesta1

find . -mindepth 1 -type d -exec echo cp index.php {} \;

El comando anterior copiaría el index.phparchivo de su directorio actual a todos los subdirectorios, de forma recursiva, pero no de inmediato.

Cuando se haya asegurado de que imprima todos los comandos de copia correctos, elimínelo echoy ejecútelo. echoes solo una medida de seguridad para mostrarle lo que haría todo el comando antes de hacer algo que quizás no desee.

Otro enfoque interesante (gracias @RedGrittyBrick) seríaenlace simbólicolos archivos en lugar de simplemente copiarlos. De esta manera, index.phptodos los archivos en los subdirectorios serían solo un acceso directo, por así decirlo, al que está en el directorio raíz y no estarían duplicados. Para hacer esto, en el comando anterior, cambie cpa ln -s. De esta manera, cuando cambie el index.phparchivo "maestro", todos los demás en los subdirectorios seguirán apuntando a él y, por lo tanto, también cambiarán automáticamente cuando se vean.


Para completar, todo el comando, desglosado, funciona así:

  • find ., buscar en el directorio actual
  • -mindepth 1, yendo al menos a un directorio de profundidad
  • -type d, solo busca directorios
  • -exec …, ejecute el comando echo cp index.php {}, donde {}se reemplaza con cada directorio encontrado. Este comando se llama varias veces, una para cada subdirectorio.

información relacionada