Suchen mit find

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von muellners, 06.02.2005.

  1. #1 muellners, 06.02.2005
    muellners

    muellners Jungspund

    Dabei seit:
    03.11.2004
    Beiträge:
    24
    Zustimmungen:
    0
    Hallo,

    bin gerade dabei einen Skript zu schreiben, der mit dem Befehl "find -name" alle im System enthaltenen *.exe Dateien auswirft.

    cd /home
    find -name "*.exe" > Datei

    ich möchte fast alle Verzeichnisse im Home-Ordner durchsuchen, aber eben nur fast alle!
    Kann ich irgendwie einige Ordner z.B. root, bilder, sonstnocheinordner von der Suche ausschliessen ?
     
  2. Anzeige

    Schau dir mal diesen Ratgeber an. Viele Antworten inkl. passender Shell-Befehle!
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. rup

    rup Haudegen

    Dabei seit:
    10.04.2002
    Beiträge:
    627
    Zustimmungen:
    0
    Du kannst find alle Ordner angeben in denen du suchen willst.
    find /home/hans /home/sepp /home/franz -name "*.exe"

    Oder du kannst es mit dem Parametern -regex / -iregex versuchen, z.B. so:
    find . -name "*.exe" -not -regex "^\./bilder/.*"
     
  4. #3 TenBaseT, 06.02.2005
    TenBaseT

    TenBaseT Foren As

    Dabei seit:
    07.11.2004
    Beiträge:
    99
    Zustimmungen:
    0
    Wenn nur wenige Verzeichnisse auszugeben sind, dann ist an Rip's Vorschlag sichrelich nichts auzusetzen. Alternative:
    • alle *.exe suchen und Ergebnis in Datei abspeichern
    • *.awk datei erstellen, welche alle Ausschlüssen enthält
    • awk script anschmeißen, das alle Einträge mit nicht erwünschten Ordbern ins Nirvana jagd.

    Hans
     
  5. Phate

    Phate Frickler/Kellerkommunist

    Dabei seit:
    08.02.2004
    Beiträge:
    261
    Zustimmungen:
    0
    Ort:
    Rheinland
  6. dramen

    dramen Routinier

    Dabei seit:
    13.01.2005
    Beiträge:
    356
    Zustimmungen:
    0
    Ort:
    Wien
    probiers mal hiermit:

    find /verzeichnis -name '*.exe' -maxdepth 1 -ok ls {} \; >> datei

    oder einfach mal 'man find'
     
  7. #6 TenBaseT, 06.02.2005
    TenBaseT

    TenBaseT Foren As

    Dabei seit:
    07.11.2004
    Beiträge:
    99
    Zustimmungen:
    0
    Huch, was soll denn das Gewürge? Ist doch das gleiche wie:
    Code:
    find /verzeichnis -name "*.exe" -maxdepth 1 -print > datei
    Das mit dem -ok mag ja vereinzelt funktionieren, aber alles in einem Rutsch suchen und dann mal schnell den vi anwerfen ist wohl deutlich schneller. Ich vermisse in deinem Kommando eine Initialisierung von datei. Die wächst ja ins unermessliche wenn man die nicht zu Fuss löscht.

    Stimmt auffallend :rtfm:

    Hans
     
  8. dramen

    dramen Routinier

    Dabei seit:
    13.01.2005
    Beiträge:
    356
    Zustimmungen:
    0
    Ort:
    Wien
    find /verzeichnis -name '*.exe' -maxdepth 1 -ok ls {} \; >> datei
    find /verzeichnis -name "*.exe" -maxdepth 1 -print > datei
    .... maaaaaaaaaa

    was meinst du damit??
     
  9. #8 muellners, 07.02.2005
    muellners

    muellners Jungspund

    Dabei seit:
    03.11.2004
    Beiträge:
    24
    Zustimmungen:
    0
    Hallo,

    find . -name "*.exe" -not -regex "^\./bilder/.*"

    ist genau das, was ich gesucht habe, danke !!!


    nun noch eine Frage:

    ist es auch möglich, die Größe der gefundenen Dateien zu ermitteln ?
     
  10. rup

    rup Haudegen

    Dabei seit:
    10.04.2002
    Beiträge:
    627
    Zustimmungen:
    0
    find . -name "*.exe" -not -regex "^\./bilder/.*" -exec ls -l {} \; | awk {'print $9 "\t" $5'}

    Sieht dann etwa so aus
    ./hans/abc.exe 21132
    ./hans/def.exe 25820
    ./sepp/xyz.exe 10844
     
  11. #10 Schlaubi_fi.de, 08.02.2005
    Schlaubi_fi.de

    Schlaubi_fi.de Mac OS X User

    Dabei seit:
    22.12.2004
    Beiträge:
    304
    Zustimmungen:
    0
    Hallo,

    um Verzeichnisbäume bei der Suche auszulassen, kann auch -path und -prune benutzt werden.

    Um die Dateigröße mit anzugeben, kann auch eine Verbindung aus -printf und %s benutzt werden.
     
  12. rup

    rup Haudegen

    Dabei seit:
    10.04.2002
    Beiträge:
    627
    Zustimmungen:
    0
    printf bei find kannte ich noch nicht, das ist natuerlich wesentlich besser/schneller als mein Konstrukt.
     
  13. #12 muellners, 08.02.2005
    muellners

    muellners Jungspund

    Dabei seit:
    03.11.2004
    Beiträge:
    24
    Zustimmungen:
    0
    find . -name "*.exe" -not -regex "^\./bilder/.*" -exec ls -l {} \; | awk {'print $9 "\t" $5'}

    liefert zwar das geswünschte Ergebnis, sobald aber ein Leerzeichen im Pfad vorhanden ist, sieht die Ausgabe folgendermaßen aus:

    ./hans/meine 25820

    anstelle von:

    ./hans/meine dateien/unterordner/abc.exe 25820

    ist da noch was anderes möglich?
     
  14. #13 muellners, 09.02.2005
    muellners

    muellners Jungspund

    Dabei seit:
    03.11.2004
    Beiträge:
    24
    Zustimmungen:
    0
    Lösung gefunden:

    find . \( -name "*.exe" -o -name "*.dat" \) -not -regex "^\./ordner1/.*" -not -regex "^\./ordner2/.*" -exec ls -sh {} \; > datei

    Durchsucht das aktuelle Vezeichnis nach *.exe und *.dat Dateien, ordner1 und ordner2 werden von der Suche ausgenommen. Anschließend wird die Größe ermittelt und alles in eine datei umgeleitet.


    Danke an alle für die Infos :)
     
Thema:

Suchen mit find

Die Seite wird geladen...

Suchen mit find - Ähnliche Themen

  1. GELÖST - SUCHEN und finden mit Locate/Updatedb --> auch auf Windows?

    GELÖST - SUCHEN und finden mit Locate/Updatedb --> auch auf Windows?: Hallo Gemeinde, locate und updatedb gehören zu meinem Alltag seit 6 Jahren Linux - ich liebe es Dateien innerhalb von 2 Sekunden zu finden....
  2. find: nach Dateien suchen aber nur Ordner ausgeben

    find: nach Dateien suchen aber nur Ordner ausgeben: Hallo zusammen, habe momentan folgenden Code: find . -name "*.sta" dieser gibt mir alle .sta Dateien in und unterhalb des aktuellen...
  3. Dateien mit find suchen und dann löschen

    Dateien mit find suchen und dann löschen: Hallo! Ich möchte mit find Dateien suchen und diese dann löschen. Ich habe das so probiert: find -name *xy* -exec rm -r ";"Für jede Datei...
  4. bibliotheken suchen/finden

    bibliotheken suchen/finden: hallo! ich habe eine grundlegende frage: kann mir jemand vielleicht verraten wie man am leichtesten bestimmte bibliotheken findet. wie weiß...
  5. [Gelöst] Suchen und ersetzen mit Hilfe mehrerer Parameter

    [Gelöst] Suchen und ersetzen mit Hilfe mehrerer Parameter: Hallo zusammen, ich bin an einem Punkt angekommen, wo ich nicht mehr weiter komme und hoffe ihr könnt mir weiter helfen. Anbei ein Ausschnitt aus...