Esta es una pregunta adicional que comenzó con esto - Cómo editar Enlaces Simbólicos en OS X?
Ahora que sé cómo editar la ruta de enlaces punto a, estoy tratando de averiguar cómo hacer esto de forma recursiva para cualquier enlace simbólico roto. Soy un PHP chico, por lo que esta CLI cosas es algo extraño para mí...
Parece ser que existen algunos elementos específicos al este, a saber:
- Identificar un enlace simbólico roto y recuperar su ubicación
- Los antiguos, ahora incorrecta, el destino para el enlace simbólico
- La construcción de la nueva ruta de acceso correcta para el enlace simbólico a punto para
- Editar el enlace simbólico
El primero es bastante fácil:
find /path/to/search -type l | while read f; do if [ ! -e "$f" ]; then ls -l "$f"; fi; done
Esto me pone una buena lista de todas las roturas de enlaces simbólicos encuentra por debajo de la proporcionada del directorio. Pero creo que sería necesario para almacenar la ubicación de cada uno en una variable (matriz?) para trabajar con él.
Siguiente, parece que el cambio de la acción que se suministra en el "entonces" de una porción de la lógica, daría la solución.
El punto 2 puede ser recuperada mediante:
readlink /path/to/broken/symlink
Así que parece que tenemos que meter en una variable. Estoy claro sobre cómo hacer esto en la terminal.
Número 3 sería una simple edición de la ruta de acceso obtenido en el paso 2. Necesito reemplazar el antiguo nombre de la unidad, con el nuevo. Por lo que cambiar:
/Volumes/Old\ Drive/path/to/symlink
a
/Volumes/New\ Drive/path/to/symlink
También está claro exactamente cómo hacer esto dentro de una secuencia de comandos de la CLI. Algún tipo de cadena de reemplazo parece ser necesaria. Algo así como str_replace en el PHP mundo.
Finalmente el paso 4 se puede hacer a través de:
ln -f -s /path/to/new/location/of/original /path/to/location/of/broken/symlink/
como se detalla en mi otra pregunta, anteriormente vinculado anteriormente.
Cómo sería exactamente la cadena a estos conceptos juntos, para llevar a cabo mi resultado deseado de la fijación de todos mis enlaces simbólicos en una sola toma?