Cómo sobrescribir un directorio en varios lugares con 1 directorio de origen

Cómo sobrescribir un directorio en varios lugares con 1 directorio de origen

Hoy encontré que uno de mis archivos PHP estaba desactualizado, así que tuve que sobrescribir el phpthumbdirectorio 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 cpno se puede copiar a varios destinos. cpPuede manejar múltiples fuentes.

Explicación:

  • echo /home/*/*/phpthumb: enumera todos phpthumblos directorios
  • xargs -t -n 1: xargs debería llamar cpa cada línea por separado
  • cp -r /home/test/testuser/phpthumb/*el comando xargsdebería llamar. Tenga en cuenta que el directorio de destino se agregará al final mediante xargs.

Respuesta2

prueba esto:

$ find /home -name "phpthumb" -type d -not -path "*test/testuser/phpthumb" \
    -exec cp /home/test/testuser/phpthumb/* {} \;

findEl comando busca phpthumben /home:

  • -type dseleccione la carpeta
  • -not -pathexcluyetest/testuser/phpthumb

Para cada carpeta ejecute cpel comando. Si test/testuser/phpthumbes un árbol con subcarpetas, agregue -Rla opción a cp.

información relacionada