• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Verzeichnisse nicht anzeigen mit find

LoWang

Member
Hi,

hab da ein Problem, ich möchte mit find in einem bestimmten Verzeichniss
diejenigen Verzeichnisse anzeigen lassen in denen ein bestimmter Dateityp NICHT vorkommt.

mit

Code:
 find . !*.dateityp

werden mir nur alle anderen Dateien angezeigt und mit

Code:
 -printf

als Aktion bekomme ich nur ein

Code:
find: bad option -printf
find: path-list predicate-list

als Fehler.

Ich sollte noch hinzufügen das ich hier auf nem Solaris 7 bin.

Für Antworten bin ich euch echt dankbar

*derfrustrierte*
 

abgdf

Guru
Hi,

also, in Python müßte das so gehen:

Code:
#!/usr/bin/env python
#-*- coding: iso-8859-1 -*-

import os

SUFFIX = "html"

PATH = os.getcwd()

a = []
c = []

def getDirs(arg, dir, files):
    for i in files:
        if os.path.isdir(dir + "/" + i):
            a.append(dir + "/" + i)

os.path.walk(PATH, getDirs, 0)

for i in a:
    x = 0
    b = os.listdir(i)
    for u in b:
        if u.endswith(SUFFIX):
            x = 1
            break
    if x == 0:
        c.append(i)

for i in c:
    print i

Dateityp wäre hier "html".
Allerdings: Wenn /1/2/3/x.html existiert, wird /1/2/3 nicht gefunden, /1/2 aber schon.
Sag Bescheid, wenn das Beispiel bei Dir klappt, aber auch /1/2 nicht gefunden werden soll.

Viele Grüße
 
Hi Frustierter,

ich würde mit shell-Mitteln folgendes versuchen. Sollte
auch auf Solaris gehen.

Code:
PATTERN="*.html"
find . -type d -print | while read founddir
do
SEARCHFOR="$founddir/$PATTERN"
[[ "`echo $SEARCHFOR`" == "$SEARCHFOR" ]] && echo not found in $founddir
done

Ist zwar nicht viel "find". Aber das sollte gehen.
Haveaniceday
 
Oben