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

[gelöst]Verzeichnisse mit mehr als 100 Dateien finden

Konsens

Newbie
Hallo, ich habe mich extra angemeldet, weil ich bei einem Problem nicht weiterkomme:

ich möchte mich auf einem Server einloggen und dann einen Befehl oder Script absetzen, der folgendes tut:
finde alle Verzeichnisse, die mehr als 100 Dateien enthalten und liste diese auf.

Ich habe mit find und xargs experimentiert, aber ohne Erfolg. Vielleicht hat jemand Freude daran eine Lösung zu finden.
 

marce

Guru
such Dir mit find die Verzeichnisse aus, lass auf jedes gefundene Verzeichnis ein ls (oder noch ein find) drüber und prüfe, ob da mehr als 100 Zeilen zurück kommen - wenn ja, Pfad ausgeben, wenn nein - nichts tun.
 
OP
K

Konsens

Newbie
abgdf schrieb:
Frage vorab: Bist Du denn root auf dem Server, sonst wirst Du auf viele Verzeichnisse keinen Zugriff erhalten.

Ja, ich bin root.

marce schrieb:
such Dir mit find die Verzeichnisse aus, lass auf jedes gefundene Verzeichnis ein ls (oder noch ein find) drüber und prüfe, ob da mehr als 100 Zeilen zurück kommen - wenn ja, Pfad ausgeben, wenn nein - nichts tun.

Genau das wäre die Vorgehensweise. Wie das aber umzusetzen ist, hab ich noch nicht rausgefunden. Habe mal sowas probiert: find / -type d | find xargs -type f | wc -l funktioniert aber nicht.
 

abgdf

Guru
So vielleicht:
Code:
#!/bin/bash

# rootdir=$(pwd)
rootdir="/"

find $rootdir -type d | while read i
do
    if test $(ls -1 | wc -l) -gt 100; then
        echo $i
    fi
done
 
OP
K

Konsens

Newbie
Vielen Dank abgdf diese Hilfe habe ich gebraucht.

So habe ich es umgesetzt:

Code:
#!/bin/bash

find / -type d | while read i
do
    if test $(find $i -maxdepth 1 -type f | wc -l) -gt 100; then
        echo $i
    fi
done

Jetzt kann ich auf vielen Servern Verzeichnisse suchen, in denen Logfiles überlaufen. Vielen Dank nochmal.
 
Oben