Wie finde ich alle Link-Dateien, die auf eine bestimmte Originaldatei zeigen?
ich habe eine Datei namens „List“ auf meinem Ubuntu-System.
Jetzt vermute ich, dass es mehrere Link-Dateien (Hard Links) gibt, die auf diese Datei zeigen, aber ich weiß nicht, wie diese Links heißen oder wo sie gespeichert sind.
Wie kann ich herausfinden, welche Links auf die Datei „List“ verweisen – auch wenn ich deren Namen oder Speicherort nicht kenne?
Gibt es einen Befehl oder eine Methode, um alle symbolischen Links zu finden, die auf eine bestimmte Datei zeigen?
Ich freue mich auf eure Tipps!
3 Antworten
Was suchst du: hard links oder symbolische Links? Das sind grundlegend verschiedene Dinge, auch wenn der Effekt auf den ersten Blick gleich scheinen mag.
Letzlich wird es kaum ohne find gehen. Ein Link ist unidirektional, d.h. eine Datei weiß nicht selbst, wer auf sie zeigt.
Mit
find / -type l -ls
kannst du alle symbolischen Links finden, deren Ziel anzeigen, und die Liste kannst du dann mit grep nach der Zieldatei filtern.
Gibt es einen Befehl oder eine Methode, um alle symbolischen Links zu finden, die auf eine bestimmte Datei zeigen?
bei einem Hard-Link haben alle Dateien, die so untereinander den gleichen inode
der Befehl
ls -i <Dateiname> zeigt dir diesen inode für diese Datei an
damit kannst du "Partitions-Weit" suchen
ls -ir * |grep <inode-wie-ermittelt>
Damit listet er die Dateien mit gleichem inode, dann aber unterschiedlichen Namen auf.
Beachte Hard-Links sind nur innerhalb eines Filesystems möglich, also nur auf der gleichen Partition
Lies:
https://www.redhat.com/en/blog/linking-linux-explained
und:
https://www.redhat.com/en/blog/inodes-linux-filesystem
Das hilft dir erstmal zum Verständnis.
Lass dir von der Datei List die Anzahl der auf sie verweisenden hardlinks anzeigen:
ls -l List
ist der wert 1 dann existieren keine hardlinks. Ist er größer als 1 dann existieren welche. Lass dir dann den inode der Datei List anzeigen:
ls -li List
Dann musst du wohl oder übel rekursiv durch den ganzen Baum durchackern angefangen bei / und dir die Dateien herausfiltern, die dieselbe inode haben.
Hab doch HARD LINKS geschrieben