ver simbolicos simbolico roto remover links link liga fisico enlaces enlace eliminar crear como borrar linux symlink

simbolicos - linux remover link simbolico



¿Hay alguna manera de verificar si hay enlaces simbólicos apuntando a un directorio? (8)

Realmente no hay ninguna forma directa de verificar tales enlaces simbólicos. Considere que puede tener un sistema de archivos que no está montado todo el tiempo (por ejemplo, una unidad USB externa), que podría contener enlaces simbólicos a otro volumen en el sistema.

Podrías hacer algo con:

for a in `find / -type l`; do echo "$a -> `readlink $a`"; done | grep destfolder

Noto que el find de FreeBSD no admite la opción -lname , por lo que terminé con lo anterior.

Tengo una carpeta en mi servidor a la que tenía apuntados varios enlaces simbólicos. Desde entonces he creado una nueva carpeta y quiero cambiar todos esos enlaces simbólicos para apuntar a la nueva carpeta. Consideré reemplazar la carpeta original con un enlace simbólico a la nueva carpeta, pero parece que si continúo con esa práctica podría ser muy complicado muy rápido.

Lo que he estado haciendo es cambiar manualmente los enlaces simbólicos para que apunten a la nueva carpeta, pero es posible que haya perdido un par.

¿Hay alguna manera de verificar si hay enlaces simbólicos apuntando a una carpeta en particular?


Usaría el comando find.

find . -lname /particular/folder

Eso buscará recursivamente en el directorio actual los enlaces simbólicos a /particular/folder . Tenga en cuenta que solo encontrará enlaces simbólicos absolutos. Un comando similar se puede utilizar para buscar todos los enlaces simbólicos que apuntan a objetos llamados "carpeta":

find . -lname ''*folder''

A partir de ahí, necesitarás descartar cualquier falso positivo.


find / -lname ''fullyqualifiedpathoffile''


find . -type l -printf ''%p -> %l/n''


find /foldername -type l -exec ls -lad {} /;


Además de mirar todas las demás carpetas si hay enlaces que apuntan a la carpeta original, no creo que sea posible. Si lo es, estaría interesado.


Para enlaces duros, puede obtener el inode de su directorio con una de las opciones "ls" ( -i , creo).

Entonces, un find con -inum localizará todos los -inum comunes.

Para los softlinks, puede que tenga que hacer un ls -l en todos los archivos buscando el texto después de "->" y normalizarlo para asegurarse de que sea una ruta absoluta.


Puede auditar los enlaces simbólicos con el programa de symlinks escrito por Mark Lord: escaneará un sistema de archivos completo, normalizará las rutas de enlace simbólico a formato absoluto e imprimirá a stdout.