webentwicklung-frage-antwort-db.com.de

Wie finde ich Dateien ohne symbolische Links?

Ich möchte in Linux nach Dateien suchen, die einem bestimmten Muster folgen, mich aber nicht für symbolische Links interessieren. 

Es scheint keine Option für den Befehl find zu geben. 

Wie soll ich tun 

53
Barth

Überprüfen Sie die man-Seite noch einmal;)

find /path/to/files -type f

type f sucht nur nach regulären Dateien - ausschließlich symbolische Links. 

61
hek2mgl
! -type l

Wenn Sie beispielsweise alle regulären Dateien in/usr/bin durchsuchen möchten, ausgenommen symlink:

find /usr/bin/ \! -type l
14

Ich habe die MAN gelesen und jetzt scheint es -P Zu sein. Wenn Sie -type r verwenden, würde dies einen Fehler auslösen

-P Niemals symbolischen Links folgen. Dies ist das Verhalten von default . Wenn find untersucht oder druckt Informationen eine Datei, und die Datei ist ein symbolischer Link, die verwendeten Informationen stammen von die Eigenschaften des symbolischen Links selbst.

2
Nande

Soll es Symlinks folgen, sie aber nicht zurückgeben (wenn sie Ihrem Muster entsprechen)?

find -H?

man find
     ...
     -H      Cause the file information and file type (see stat(2)) returned for each symbolic link specified on the command line to be those of
             the file referenced by the link, not the link itself.  If the referenced file does not exist, the file information and type will be
             for the link itself.  File information of all symbolic links not on the command line is that of the link itself.

     -L      Cause the file information and file type (see stat(2)) returned for each symbolic link to be those of the file referenced by the
             link, not the link itself.  If the referenced file does not exist, the file information and type will be for the link itself.

             This option is equivalent to the deprecated -follow primary.
2
ron rothman

Wie @AquariusPower sagt, hat die Verwendung von find -type f -xtype f Mein Problem gelöst, und jetzt bekomme ich nur noch echte Dateien und keine symbolischen Links mehr.

Von: https://linux.die.net/man/1/find

Ich habe:

-text c Dasselbe wie -type, es sei denn, die Datei ist ein symbolischer Link. Für symbolische Links: Wenn die Option -H oder -P angegeben wurde, true, wenn die Datei eine .__ ist. Link zu einer Datei vom Typ c; Wenn die Option -L angegeben wurde, true, wenn c ist 'l'. Mit anderen Worten, bei symbolischen Links überprüft -xtype den Typ von Die Datei, die -type nicht überprüft.

Vielen Dank.

0
Wellington1993

Das funktioniert für mich:

find -H . -maxdepth 1 -type f

Eigentlich brauche ich nicht wirklich das -H

0
Joyce M