Find/Anwendungen/Dateiname: Unterschied zwischen den Versionen
Die Seite wurde neu angelegt: „=== Dateiname === Mit vollständigem Namen find -name hausarbeit.odt * Sucht die Datei hausarbeit.odt im aktuellen Verzeichnis und allen Unterverzeichnissen * Sind mehrere Dateien dieses Namens vorhanden, werden alle Fundstellen aufgelistet * Jokerzeichen, [https://de.wikipedia.org/wiki/Wildcard_%28Informatik%29 Wildcards], wie der *</nowiki> oder das ? müssen maskiert werden, sonst interpretiert sie schon die Shell * find -name "*.pdf" * Sucht im aktuel…“ |
Keine Bearbeitungszusammenfassung |
||
(Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt) | |||
Zeile 60: | Zeile 60: | ||
Ändert die Syntax der regulären Ausdrücke, die von -regex und -iregex verstanden werden | Ändert die Syntax der regulären Ausdrücke, die von -regex und -iregex verstanden werden | ||
* Folgende Typen sind implementiert: emacs (Standard), posix-awk, posix-basic, posix-egrep und posix-extende | * Folgende Typen sind implementiert: emacs (Standard), posix-awk, posix-basic, posix-egrep und posix-extende | ||
[[Kategorie:findutils]] |
Aktuelle Version vom 13. September 2025, 13:18 Uhr
Dateiname
Mit vollständigem Namen find -name hausarbeit.odt
- Sucht die Datei hausarbeit.odt im aktuellen Verzeichnis und allen Unterverzeichnissen
- Sind mehrere Dateien dieses Namens vorhanden, werden alle Fundstellen aufgelistet
- Jokerzeichen, Wildcards, wie der *</nowiki> oder das ? müssen maskiert werden, sonst interpretiert sie schon die Shell
- find -name "*.pdf"
- Sucht im aktuellen Verzeichnis nach PDF-Dateien. -name berücksichtigt die Groß-/Kleinschreibung bei der Suche, findet also mit obigen Beispiel keine Datei(en) mit Endung *.PDF</nowiki>
- Das *</nowiki> steht für eine beliebige Anzahl Zeichen
- find -iname "a*.pdf"
- Sucht im aktuellen Verzeichnis nach .pdf- und .PDF-Dateien, die mit a oder A beginnen. find -name "katze.*"
- findet katze.jpg, katze.png, katze.txt und so weiter find -name "katze.??g"
- findet katze.jpg, katze.png und so weiter Jedes Fragezeichen steht für ein einzelnes Zeichen
- find -name "*foo*.*x*"
- findet foo.x, afoo.x, foob.txt und so weiter
- -name <Muster>
Finde Dateien, deren Name <Muster> entspricht
- Mit dieser Option wird <Muster> wie ein Suchmuster behandelt (siehe Kapitel Suchmuster und Reguläre Ausdrücke)
- -iname <Muster>
Findet Dateien mit Name, wie -name, ignoriert jedoch Groß- und Kleinschreibung
- -path Name
Findet Dateien mit Name, wobei Name auch Pfadangaben enthalten kann ("*/include/*.h")
- Sucht man mit Verzeichnisnamen, in denen ein Schrägstrich / vorkommt, kommt man mit -name nicht weiter
- Der Parameter -path ist hier die Lösung, denn er erlaubt die Interpretation des Zeichens /. find -path "*2013/J*"
- findet ~/fotos/2013/Juni und ~/musik/2013/Juli, aber nicht ~/dokumente/2013-Juni
Reguläre Ausdrücke
find hat nicht nur einfach RegEx-Support, es beherrscht auch mehrere unterschiedliche Arten der RegEx-Syntax
- Mit -regextype und eine der unterstützten Arten wie posix-awk, posix-egrep, kannst du den Typ wählen
- Lies unter man find nach, welche Arten unterstüzt werden
- Ein kurze Beispiel
- Sagen wir ich suche alle Dateien die entweder eine .php oder .js Endung
- Ich könnte das folgende laufen lassen:
- find -regextype posix-egrep -regex .*(php|js)$* die egrep-Syntax -regextype posix-egrep zu benutzen und hinten kommt der Reguläre Ausdruck nach dem gesucht wird
- Der Ausdruck beginnt und endet mit einem Hochkomma, damit die Shell nicht versucht die RegEx auszuwerten
- Der Ausdruck .* ist ein Joker und bedeute "ein oder mehr beliebige Zeichen". (php|js) weist an nach php oder js zu suchen
- Die Pipe (|) steht hier für "oder"
- Das Dollarzeichen "$" hinten weist an, den Ausdruck am Ende eines Strings zu suchen
- Also trifft etwa eine Datei namens js.txt nicht auf die Abfrage zu
- -regex Muster
Wie "-name", nur kann das Muster reguläre Ausdrücke enthalten
- -regex Muster
der Pfadname passt zu dem regulären Ausdruck Muster
- -regex <Muster>
Wie -name, jedoch wird hier Muster als regulärer Ausdruck behandelt
- -iregex Muster
Wie "-regex" jedoch ohne Groß-/keinschreibung zu beachten
- -iregex <Muster>
Wie -regex, ignoriert aber Groß- und Kleinschreibung
- -regextype type
Ändert die Syntax der regulären Ausdrücke, die von -regex und -iregex verstanden werden
- Folgende Typen sind implementiert: emacs (Standard), posix-awk, posix-basic, posix-egrep und posix-extende