Elencare tutti i file con lo stesso numero di inode?


53

Diciamo, quando lo faccio ls -liall'interno di una directory, ottengo questo:

12353538 -rw-r--r-- 6 me me 1650 2013-01-10 16:33 fun.txt

Come mostra l'output, il file fun.txt ha 6 hard link; e il numero di inode è 12353538 .

Dato il caso, come posso trovare tutti i collegamenti reali per il file, cioè i file con lo stesso numero di inode?

Risposte:


56
find /mount/point -samefile /mount/point/your/file

3
@TheoneManis Ho appena notato che le altre parti della chiamata di ricerca non sono necessarie. findè abbastanza intelligente da usarli implicitamente. Di solito devi dare findun percorso di ricerca e dirlo che non deve lasciare questi file system (tramite link simbolici o punti di mount). Ma quando si cercano hard link è chiaro su quale file system cercare.
Hauke ​​Laging,

6
Hauke, dipende dalla versione di find che stai usando. La versione GNU potrebbe farlo, ma quella BSD no, e questo non funzionerà così com'è su Mac.
Alan Shutko,

3
Potresti voler aggiungere -xdevper evitare di scendere in directory in altri filesystem, altrimenti potresti trovare un altro file con lo stesso numero di inode situato in un altro filesystem.
mmoya,

Il quasi equivalente a -samefilesu HP-UX è -linkedto(sebbene sia leggermente diverso: un percorso di ricerca deve ancora essere specificato, per esempio).
Nick,

3
Nota che se non sei nella radice del tuo mount point, find esplorerà solo le sottocartelle della cartella corrente. Quindi dovresti davvero dire qualcosa del generefind /mount/point -samefile /mount/point/your/file
Calimo,

52

Se hai già il numero di inode puoi usare l' -inumopzione find :

find -inum 12353538

11
Non dimenticare di eseguire il cd alla radice del file system o specificarlo come percorso da trovare, ad esempio find /mount/point -inum 12353538. In caso contrario, troverai solo sotto la cartella corrente.
Calimo,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.