
Hoy encontré que uno de mis archivos PHP estaba desactualizado, así que tuve que sobrescribir el phpthumb
directorio en todo el servidor.
Varios sitios web utilizan esta carpeta en varias ubicaciones desconocidas, entonces, ¿cómo puedo sobrescribir todos estos directorios desde una ruta de origen? (es decir: /home/test/testuser/phpthumb/
a /home/*/*/phpthumb/
)
Respuesta1
Esto debería funcionar:
echo /home/*/*/phpthumb | xargs -t -n 1 cp -r /home/test/testuser/phpthumb/*
Tienes que trabajar con xargs
. Lamentablemente cp
no se puede copiar a varios destinos. cp
Puede manejar múltiples fuentes.
Explicación:
echo /home/*/*/phpthumb
: enumera todosphpthumb
los directoriosxargs -t -n 1
: xargs debería llamarcp
a cada línea por separadocp -r /home/test/testuser/phpthumb/*
el comandoxargs
debería llamar. Tenga en cuenta que el directorio de destino se agregará al final mediantexargs
.
Respuesta2
prueba esto:
$ find /home -name "phpthumb" -type d -not -path "*test/testuser/phpthumb" \
-exec cp /home/test/testuser/phpthumb/* {} \;
find
El comando busca phpthumb
en /home
:
-type d
seleccione la carpeta-not -path
excluyetest/testuser/phpthumb
Para cada carpeta ejecute cp
el comando. Si test/testuser/phpthumb
es un árbol con subcarpetas, agregue -R
la opción a cp
.