Ich hatte viele symbolische Links auf verschiedenen Pfaden für eine bestimmte Datei oder ein Verzeichnis erstellt. Ich möchte die gesamte Liste der erstellten symbolischen Verknüpfungspfade (Speicherort).
Beispiel:
Ich habe symbolische Links für ~/Pictures
Verzeichnisse in vielen Verzeichnissen erstellt. Wie liste ich alle Symlinks zu diesem ~/Pictures
Verzeichnis auf?
Ist das möglich? Wenn ja, wie?
command-line
symbolic-link
Avinash Raj
quelle
quelle
Antworten:
Hier ist ein Beispiel:
oder vielleicht besser:
um einige Fehler wie
Permission denied
, loszuwerdenToo many levels of symbolic links
, oderFile system loop detected
die siefind
auslösen, wenn sie nicht die richtigen Berechtigungen oder andere Situationen haben.-L
- Folgen Sie symbolischen Links.-xtype l
- Die Datei ist eine symbolische Verknüpfung-samefile name
- Datei bezieht sich auf den gleichen Inode wiename
. In-L
diesem Fall können symbolische Links enthalten sein.Anmerkungen:
-xtype l
und nicht die Ziffer 1.-xtype
ist-type
.quelle
Sehr einfach, verwenden Sie die Option
-lname
:Von
man find
:Hinweis : Denken Sie daran, dass symbolische Links überall vorhanden sein können, einschließlich eines Remote-Systems (wenn Sie Dateien freigeben), sodass Sie möglicherweise nicht alle finden können.
quelle
../dir
ist, er nicht das Absolute findet./path/to/original/dir
Sie können stattdessen ein Muster verwenden und falsch positive-lname \*dir
Versuche dies :
find . -follow -inum 277566
(Verzeichnisse mit der gleichen Inode- Nummer finden)Es werden alle symbolischen Verknüpfungspfade angezeigt.
quelle
Ich mag diesen Einzeiler am meisten:
find . -maxdepth 1 -type l -exec readlink -f '{}' \;
refs:
https://unix.stackexchange.com/questions/22128/how-to-get-full-path-of-original-file-of-soft-symbolic-link
https://unix.stackexchange.com/questions/21984/list-symlinks-incurrent-directory
quelle