Anzeige:
Ergebnis 1 bis 14 von 14

Thema: find soll mehrere Dateinamen suchen

  1. #1
    Registrierter Benutzer
    Registriert seit
    Jun 2005
    Beiträge
    105

    find soll mehrere Dateinamen suchen

    Hallo,

    mit
    Code:
    find -type f -name "*.php*"
    kann man php-Dateien suchen lassen.

    Aber wie kann man gleichzeitig nach anderen Dateien-Namen suchen,
    z.b. nach inc-Dateien, weil so funzt das nicht:

    Code:
    find -type f -name "*.php*" -name "*.inc*"
    Gruss
    Mox

  2. #2
    Registrierter Benutzer Avatar von klemens
    Registriert seit
    Nov 2002
    Ort
    Wien
    Beiträge
    2.061
    find -type f -name "*.php*" -or -name "*.inc*"

  3. #3
    Bastard User From Hell Avatar von kreol
    Registriert seit
    Oct 2004
    Beiträge
    7.971
    @klemens: Mitlesen bildet auch, wieder was gelernt

    Es funktioniert. Aber entweder bin ich blind oder es ist auf der manpage nicht aufgeführt. Wie kommt man dann an so Infos?


    Kreol
    Beim posten von Dateien oder Ausgaben bitte [code]Text[/code] verwenden. Nähere Info über vB-Tags gibt es hier

    I just want to know God's thoughts. The rest are details. (A. Einstein)

  4. #4
    Registrierter Benutzer Avatar von drcux
    Registriert seit
    Oct 2003
    Beiträge
    6.972
    @kreol

    In meiner Manpage schon

    OPERATORS
    Listed in order of decreasing precedence:
    ( expr )
    Force precedence.
    ! expr
    True if expr is false.
    -not expr
    Same as ! expr, but not POSIX compliant.
    expr1 expr2
    Two expressions in a row are taken to be joined with an implied "and"; expr2 is not evaluated if expr1 is false.
    expr1 -a expr2
    Same as expr1 expr2.
    expr1 -and expr2
    Same as expr1 expr2, but not POSIX compliant.
    expr1 -o expr2
    Or; expr2 is not evaluated if expr1 is true.
    expr1 -or expr2
    Same as expr1 -o expr2, but not POSIX compliant.
    expr1 , expr2
    List; both expr1 and expr2 are always evaluated. The value of expr1 is discarded; the value of the list is the value of expr2.
    The comma operator can be useful for searching for several different types of thing, but traversing the filesystem hierarchy only once. The -fprintf action can be used to list the various matched items into several different output files.

  5. #5
    Registrierter Benutzer Avatar von klemens
    Registriert seit
    Nov 2002
    Ort
    Wien
    Beiträge
    2.061
    Zitat Zitat von kreol Beitrag anzeigen
    @klemens: Mitlesen bildet auch, wieder was gelernt

    Es funktioniert. Aber entweder bin ich blind oder es ist auf der manpage nicht aufgeführt. Wie kommt man dann an so Infos?


    Kreol
    Jetzt muß ich meine faulen Tricks aufdecken
    Mich hat die Frage interessiert. Nachdem die man-page von find nicht so schnell zu behirnen ist, habe ich danach gegooglet - Aua - wie war noch der Suchbegriff "find mehrere Dateitypen" oder so ähnlich. Dabei bin ich auf die Option "-or" gestoßen. Damit hats auf Anhieb geklappt.

  6. #6
    Bastard User From Hell Avatar von kreol
    Registriert seit
    Oct 2004
    Beiträge
    7.971
    OK, /me legt sich die Blindenbinde an

    Aber übersichtlich dargestellt sieht auch anders aus. Habe nach dem Tip von klemens gezielt nach -or gesucht und es ist schon etwas versteckt. Aber gut...

    Thx


    Kreol

    Zitat Zitat von klemens
    Nachdem die man-page von find nicht so schnell zu behirnen ist
    Danke Auch wenn mich der google-Hinweis in gewisser Hinsicht schon trifft
    Geändert von kreol (20.09.06 um 01:03 Uhr) Grund: Nachtrag: Auch wenn mich der...
    Beim posten von Dateien oder Ausgaben bitte [code]Text[/code] verwenden. Nähere Info über vB-Tags gibt es hier

    I just want to know God's thoughts. The rest are details. (A. Einstein)

  7. #7
    Registrierter Benutzer
    Registriert seit
    Jun 2005
    Beiträge
    105
    Funktioniert (fast) mit '-or', danke erstmal.

    Nur hab ich jetzt dass neue Problem, dass in Verbindung mit
    "-or" die exec-Option vom find nicht mehr vollständig funktioniert, z.B. zeigt
    Code:
    find -type -f -name "*.php" -or -name "*.inc" -exec cat {} \;
    anscheinend nur die inc-Dateien an.

    So geht's leider auch nicht:
    Code:
    find -type -f -name "*.php" -exec cat {}  -or -name "*.inc" -exec cat {} \;
    aber mit nur einem Dateinamen funktioniert das ganze jedoch:
    Code:
    find -type -f -name "*.php"  -exec cat {} \;
    Wie bekommt man das mit find/exec mit der "-or" Option hin ?

  8. #8
    Bastard User From Hell Avatar von kreol
    Registriert seit
    Oct 2004
    Beiträge
    7.971
    Du hast ein \; vergessen:
    Code:
    find -type f -name "*.php" -exec cat {} \; -or -name "*.inc" -exec cat {} \;
    Und kein - vor das f...

    P.S.: Wenn Du das (wie oben) von / ausgehend laufen läßt, wirst Du als user Fehlermeldungen "find: /bla/blubb/foobar: Keine Berechtigung" erhalten. Wenn Du die Ausblenden willst häng ein "2>-" hinten an den Befehl an.


    Kreol
    Geändert von kreol (20.09.06 um 22:54 Uhr)
    Beim posten von Dateien oder Ausgaben bitte [code]Text[/code] verwenden. Nähere Info über vB-Tags gibt es hier

    I just want to know God's thoughts. The rest are details. (A. Einstein)

  9. #9
    Freidenker Avatar von suck
    Registriert seit
    Nov 2004
    Ort
    Abgrund + 1 Schritt
    Beiträge
    2.433
    Code:
    find /start/ver/zeich/nis \( -type f  -name "*.php" -or -name "*.inc" \) -exec cat {} \;
    Keine Angabe (-or oder -and) bedeutet immer "-and". "-and" ist jedoch höher priorisiert wie "-or"

    Edit: Ist wie bei der "Punkt-vor-Strich-Rechnung" ..mit Klammern umgeht man die Regel

    Edit2: Hinter das "-or" hätte ich übrigens noch ein weiteres "-type f" schreiben müssen - so werden nämlich auch Verzeichnisse gefunden! Alternativ - und das ist stilvoller - hätte man die erste Klammer auch was später, nämlich hinter das "-type f", setzen können.
    Geändert von suck (20.09.06 um 23:04 Uhr)
    int main(){while(alive()){tik();tak();}return 0;}

  10. #10
    Benutzter Registrierer Avatar von tschloss
    Registriert seit
    Jun 2004
    Ort
    Mannheim
    Beiträge
    3.066
    Ich glaube, ich hätte einfach zwei find statements hintereinander abgeschickt. Aber ich gebe zu, dass ist ein eher zweckbezogener Weg und hat mit dem Motto "Der Weg ist das Ziel" nichts zu tun

    Guts Nächtle.
    Thomas

  11. #11
    Bastard User From Hell Avatar von kreol
    Registriert seit
    Oct 2004
    Beiträge
    7.971
    Zitat Zitat von tschloss Beitrag anzeigen
    Ich glaube, ich hätte einfach zwei find statements hintereinander abgeschickt. Aber ich gebe zu, dass ist ein eher zweckbezogener Weg und hat mit dem Motto "Der Weg ist das Ziel" nichts zu tun

    Guts Nächtle.
    Thomas
    Dann werden die Ausgaben aber nach Dateityp getrennt angezeigt und nicht so schön gemischt


    Kreol
    Beim posten von Dateien oder Ausgaben bitte [code]Text[/code] verwenden. Nähere Info über vB-Tags gibt es hier

    I just want to know God's thoughts. The rest are details. (A. Einstein)

  12. #12
    Freidenker Avatar von suck
    Registriert seit
    Nov 2004
    Ort
    Abgrund + 1 Schritt
    Beiträge
    2.433
    Zitat Zitat von kreol Beitrag anzeigen
    Dann werden die Ausgaben aber nach Dateityp getrennt angezeigt und nicht so schön gemischt
    Zudem ist es stillos - sowas kann ja jeder direkt nachvollziehen
    int main(){while(alive()){tik();tak();}return 0;}

  13. #13
    Registrierter Benutzer Avatar von drcux
    Registriert seit
    Oct 2003
    Beiträge
    6.972
    find -type -f -name "*.php" -or -name "*.inc" | xargs cat

  14. #14
    Freidenker Avatar von suck
    Registriert seit
    Nov 2004
    Ort
    Abgrund + 1 Schritt
    Beiträge
    2.433
    Du hast den selben Fehler gemacht wie ich, da fehlt nen zweites "-type f".
    int main(){while(alive()){tik();tak();}return 0;}

Ähnliche Themen

  1. Dateinamen Substitution
    Von Havoc_1986 im Forum Linux Allgemein
    Antworten: 3
    Letzter Beitrag: 22.08.05, 11:20
  2. Script -> Dateien Packen und Datum im Dateinamen
    Von bernau im Forum Linux Allgemein
    Antworten: 3
    Letzter Beitrag: 28.12.04, 18:48
  3. DVD + keine vollen Dateinamen......
    Von obmib im Forum Linux Allgemein
    Antworten: 4
    Letzter Beitrag: 17.10.04, 00:34
  4. Leerzeichen entfernen aus Dateinamen
    Von clumsy im Forum Linux Allgemein
    Antworten: 7
    Letzter Beitrag: 18.03.04, 11:33
  5. Linux und Umlaute von Windows Dateinamen
    Von msi im Forum Linux in heterogenen Netzen
    Antworten: 8
    Letzter Beitrag: 22.04.03, 12:03

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •