GNU/Linux >> Linux Esercitazione >  >> Linux

Linux:trova tutti i collegamenti simbolici di un determinato file "originale"? (inverso 'readlink')

Utilizzo di GNU find , questo troverà i file che sono hard link o collegamenti simbolici a un file:

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

Non ho visto un comando per questo e non è un compito facile, dal momento che il file di destinazione non contiene informazioni su quali file di origine puntano ad esso.

Questo è simile ai collegamenti "hard" ma almeno quelli sono sempre sullo stesso file system, quindi puoi fare un find -inode per elencarli. I soft link sono più problematici poiché possono attraversare i file system.

Penso che quello che dovrai fare sia fondamentalmente eseguire un ls -al su ogni file nell'intera gerarchia e usa grep per cercare -> /path/to/target/file .

Ad esempio, eccone uno che ho eseguito sul mio sistema (formattato per la leggibilità - quelle ultime due righe sono in realtà su una riga nell'output reale):

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

Ispirato dal commento di Gordon Davisson. Questo è simile a un'altra risposta, ma ho ottenuto i risultati desiderati utilizzando exec. Avevo bisogno di qualcosa che potesse trovare collegamenti simbolici senza sapere dove si trovava il file originale.

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

Linux
  1. Come trovare un file in Linux

  2. Linux – Come trovare la data di creazione del file?

  3. Linux Trova e rimuovi tutti i collegamenti simbolici relativi a una directory?

  4. Trova tutti i file Python nel file system Linux?

  5. Trova il file quindi cd in quella directory in Linux

Autorizzazioni Linux:come trovare le autorizzazioni di un file

Come invertire le righe in un file in base al carattere in Linux

Come trovare file basati su timestamp in Linux

Come trovare le righe più lunghe in un file in Linux

Come trovare tutti i caratteri installati in Linux

Come trovare collegamenti simbolici interrotti in Linux