¿no sería mejor aprovechar el percance y sustituir todas las referencias estáticas por una variable que guarde la ruta correcta ($_SERVER["DOCUMENT_ROOT"])? te ahorrarás muchos dolores de cabeza (te habrías ahorrado éste mismo si lo hubieses hecho antes ;) )
El comando find falla porque no estás usándolo correctamente, falta el argumento -name. Además, podés usar -exec en vez de redirigir la salida a xargs, y el delimitador no necesariamente debe ser /, en el ejemplo siguiente se usa #
Código bash:
Ver originalfind /ruta/a/la/carpeta -name "*.php" -exec perl -pi -e 's#/www/#/public_html/#g' {} +