Mit find können Sie alle Dateien vom Typ symlink abrufen und die -ilname
Option hinzufügen , nach dem Namen des Verknüpfungsziels zu suchen. Dies funktioniert genauso, -iname
nur für den Linkzielnamen anstelle des Linknamens.
find -type l -ilname "*bar*"
Der Name des Links wird weiterhin ausgedruckt, nicht das Ziel. Wenn Sie die Namen der Ziele drucken möchten, versuchen Sie Folgendes:
find -type l -ilname "*bar*" -printf "%l\n"
Oder erhalten Sie eine vollständige ls
Stilausgabe
find -type l -ilname "*bar*" -ls
Was Sie unter " Mit der Liste etwas anfangen" verstehen, ist unklar. Wenn Sie jedoch die Verknüpfungsdateien bearbeiten möchten, können Sie das folgende -exec
Argument verwenden:
find -type l -ilname "*bar*" -exec touch {} \;
Wenn Sie jedoch die Verbindungsziele bearbeiten müssen, müssen Sie die verwenden -printf
, um die Zielwerte abzurufen, und dann xargs
oder eine andere Schleife selbst ausführen. Sie könnten so etwas tun:
find -type l -printf "%l\n" | grep bar | xargs touch
... das auch zeigt, wie man grep
anstelle des find -ilname
Namensvergleichs verwendet, obwohl man das auch so machen kann.
find /dev/disk/ -type l -ilname "*sde*"
Irgendeine Idee, warum das nicht funktioniert?