GNU/Linux >> Tutoriales Linux >  >> Linux

Linux:¿Encuentra todos los enlaces simbólicos de un archivo 'original' dado? ('enlace de lectura' inverso)

Usando GNU find , esto encontrará los archivos que están vinculados de forma rígida o simbólica a un archivo:

find -L /dir/to/start -samefile /tmp/orig.file

No he visto un comando para esto y no es una tarea fácil, ya que el archivo de destino no contiene información sobre qué archivos de origen apuntan a él.

Esto es similar a los enlaces "fijos", pero al menos siempre están en el mismo sistema de archivos, por lo que puede hacer un find -inode para enumerarlos. Los enlaces suaves son más problemáticos ya que pueden cruzar sistemas de archivos.

Creo que lo que vas a tener que hacer es básicamente realizar un ls -al en cada archivo en toda su jerarquía y use grep para buscar -> /path/to/target/file .

Por ejemplo, aquí hay uno que ejecuté en mi sistema (formateado para facilitar la lectura; esas dos últimas líneas están en realidad en uno línea en la salida real):

pax$ find / -exec ls -ald {} ';' 2>/dev/null | grep '\-> /usr/share/applications'
lrwxrwxrwx 1 pax pax 23 2010-06-12 14:56 /home/pax/applications_usr_share
                                         -> /usr/share/applications

Inspirado por el comentario de Gordon Davisson. Esto es similar a otra respuesta, pero obtuve los resultados deseados usando exec. Necesitaba algo que pudiera encontrar enlaces simbólicos sin saber dónde se encontraba el archivo original.

find / -type l -exec ls -al {} \; | grep -i "all_or_part_of_original_name"

Linux
  1. Cómo encontrar un archivo en Linux

  2. Cómo encontrar un archivo en Linux en todos los directorios recursivamente

  3. Cómo encontrar todos los usuarios de Sudo en Linux

  4. Linux:¿cómo encontrar la fecha de creación del archivo?

  5. ¿Linux encuentra y elimina todos los enlaces simbólicos relacionados con un directorio?

Permisos de Linux:cómo encontrar los permisos de un archivo

Cómo invertir líneas en un archivo por caracteres en Linux

Cómo encontrar archivos basados ​​en la marca de tiempo en Linux

Cómo encontrar las líneas más largas en un archivo en Linux

Cómo encontrar todas las fuentes instaladas en Linux

Cómo encontrar enlaces simbólicos rotos en Linux