Finden Sie sowohl reguläre Dateien als auch Verzeichnisse

9

Wie kann ich feststellen (wenn ich es beurteilen kann!), Um Dateien sowohl des Verzeichnisses als auch des Dateityps zu finden?

find -type fd

Es ist wie das heuristische dunkle Zeitalter hier oben.

MageProspero
quelle

Antworten:

12

Hier ist der Befehl, den Sie verwenden können:

find -type f -or -type d
Laebshade
quelle
7
Oder find -type f -o -type dfür POSIX-konforme Alternative.
Manatwork
Hey, ich hatte ein kleines Problem damit, als ich $ find laufen ließ. -typ d -oder -typ f -und -iname "vision" es macht nicht genau das, was ich erwarte, vermisse ich etwas anderes!
MageProspero
2
-a hat Vorrang vor -o, benutze Klammern (aber entkomme sie für die Shell). Es ist nicht erforderlich, das Nicht-Standard -oder oder -und zu verwenden.
Stéphane Chazelas
wenn ich versuche zu finden. -type d oder -type f -name 'abc' . I get an error.. find: Pfade müssen vor dem Ausdruck stehen: `.. Irgendeine Idee warum?
Alpha_989
1
@ alpha_989 fehlt -vorher or?
Mateusz Piotrowski
2

tl: dr

benutzen find . -name "*string*" -type f -o -name "*string*" -type d

Erläuterung

Der Befehl -o ors s die Argumente nach dem Dateipfad vollständig, so dass find . -name "*string*" -type f -o -type dberechnet wird find . (-name "*string*" -type f) -o (-type d). Aus diesem Grund müssen Sie die angeben

Die meisten Benutzer möchten etwas, das aussieht

find . -name  "*string*" -type f -o -name "*string*" -type d

welches berechnet als

find . (-name  "*string*" -type f) -o (-name "*string*" -type d)

Syntaxdetails finden

-name "*string*"sucht nach Namen, die die Zeichenfolge an einer stringbeliebigen Stelle enthalten .

Ulad Kasach
quelle
1

Wenn Sie den GNU-Fund verwenden, ist die folgende Lösung möglicherweise für Sie geeignet:

find -type d,f

Siehe man findfür weitere Details:

Um nach mehr als einem Typ gleichzeitig zu suchen, können Sie die kombinierte Liste der durch Komma getrennten Typbuchstaben ,(GNU-Erweiterung) angeben.

Mateusz Piotrowski
quelle
2
Verwenden von GNU findVersion 4.7.0. Es scheint nicht zu unterstützen ,. Die Fehlermeldung besagt, dassfind: Arguments to -type should contain only one letter.
alpha_989