Había creado muchos enlaces simbólicos en varias rutas para un archivo o directorio en particular. Quiero la lista completa de rutas de enlaces simbólicos creados (ubicación).
Ejemplo:
Creé enlaces simbólicos para el ~/Pictures
directorio en muchos directorios. ¿Cómo enumero todos los enlaces simbólicos a ese ~/Pictures
directorio?
¿Es eso posible? ¿Si es así, entonces cómo?
command-line
symbolic-link
Avinash Raj
fuente
fuente
Respuestas:
Aquí hay un ejemplo:
o, tal vez mejor:
para deshacerse de algunos errores como
Permission denied
,Too many levels of symbolic links
oFile system loop detected
que losfind
arroja cuando no tiene los permisos correctos u otras situaciones.-L
- Seguir enlaces simbólicos.-xtype l
- El archivo es un enlace simbólico-samefile name
- El archivo se refiere al mismo inodo quename
. Cuando-L
está vigente, esto puede incluir enlaces simbólicos.Notas:
-xtype l
, no el dígito 1.-xtype
es-type
.fuente
Muy simple, use la opción
-lname
:De
man find
:Nota : Recuerde que los enlaces simbólicos pueden estar en cualquier lugar, lo que incluye un sistema remoto (si está compartiendo archivos), por lo que es posible que no pueda localizarlos a todos.
fuente
../dir
entonces no encontrará el absoluto, en/path/to/original/dir
su lugar puede usar un patrón y eliminar los falsos positivos-lname \*dir
Prueba esto :
find . -follow -inum 277566
(buscar directorios con el mismo número de inodo )Mostrará todas sus rutas de enlaces simbólicos.
fuente
Este me gusta más:
find . -maxdepth 1 -type l -exec readlink -f '{}' \;
referencias:
https://unix.stackexchange.com/questions/22128/how-to-get-full-path-of-original-file-of-a-soft-symbolic-link
https://unix.stackexchange.com/questions/21984/list-symlinks-in-current-directory
fuente