
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.php
en 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í cp
y 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.php
archivo 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 echo
y ejecútelo. echo
es 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.php
todos 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 cp
a ln -s
. De esta manera, cuando cambie el index.php
archivo "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 comandoecho cp index.php {}
, donde{}
se reemplaza con cada directorio encontrado. Este comando se llama varias veces, una para cada subdirectorio.