linux - significa - enlace simbólico: encuentre todos los archivos que enlazan a este archivo
los atributos alt (3)
Hola, necesito hacer esto en Linux:
- Dado: nombre de archivo ''foo.txt''
- Buscar: todos los archivos que son enlaces simbólicos a ''foo.txt''
¿Cómo hacerlo? ¡Gracias!
Encuentre el número de inodo del archivo y luego busque todos los archivos con el mismo número de inodo:
$ ls -i foo.txt
41525360 foo.txt
$ find . -follow -inum 41525360
Alternativamente, pruebe la opción lname
de find
, pero esto no funcionará si tiene enlaces simbólicos relativos, por ejemplo a -> ../foo.txt
$ find . -lname /path/to/foo.txt
Prefiero usar la utilidad symlinks
, que también es útil cuando busco enlaces simbólicos rotos. Instalar por:
sudo apt install symlinks
Mostrar todos los enlaces simbólicos en la carpeta y subcarpetas actuales:
symlinks -rv .
-
-r
: recursivo -
-v
: verbose (muestra todos los enlaces simbólicos, no solo los rotos)
Para encontrar un enlace simbólico específico, solo grep
:
symlinks -rv . | grep foo.txt
Depende, si está tratando de encontrar enlaces a un archivo específico que se llama foo.txt,
entonces esta es la única buena manera:
find -L / -samefile path/to/foo.txt
Por otro lado, si solo está tratando de encontrar enlaces a cualquier archivo que se llame foo.txt
, entonces algo como
find / -lname foo.txt
o
find . -lname /*foo.txt # ignore leading pathname components