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
Ü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.
! -type l
Wenn Sie beispielsweise alle regulären Dateien in/usr/bin durchsuchen möchten, ausgenommen symlink:
find /usr/bin/ \! -type l
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.
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.
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.
Das funktioniert für mich:
find -H . -maxdepth 1 -type f
Eigentlich brauche ich nicht wirklich das -H