Verzeichnis löschen falls weniger als 3 Files drin sind!

F

fracle

Grünschnabel
Hallo Forum

Ich möchte mit einem Bash-Shellscript einen Verzeichnisbaum durchforsten und alle Verzeichnisse löschen in denen weniger als (zB. 3) Files drin sind.

D.h wenn in einem Unterverzeichnis z.B nur zwei Files drin sind möchte ich das ganze Verzeichnis inkl. Files löschen (ala rm -rf).

Ich denke das ganze müsste von unten nach oben ablaufen, denn falls ein weiteres Unterverzeichnis mit mehr als zB. drei Files vorhanden ist möchte ich dieses nicht löschen.

Hier habe ich mal mit find rumprobiert, bin aber irgendwie auf dem Holzweg. X(

for i in `find /home/hobbit/sound`
do
if $i [-d]
then `cd $i`
elif `ls -l $i | wc -l` | test [n1 -lt n2]
then rm -rf $i
else echo " alles OK"
fi
done

SystemInfos:
Fedora7
BASH


Ich hoffe das war verständlich.
Danke für die Hilfe.

fracle
 
Hallo
Das stichwort für deine Lösung mit find:
depth dadurch fängt find von oben an zu suchen.
Was du aber berücksichtigen musst, wenn der Baum tief ist, kann es ja sein, dass keine datei, aber weitere Verzeichnisse darin liegen.
Wenn es dir nur um Verzeichnisse nach dateien geht:
Code:
find /tmp -depth -type d |
while read v;
do 
  c="$(ls -1 $v|wc -l)";
     if [ $c -gt 3 ]; 
      then 
      echo $v hat $c Dateien Verzeichnisse und wird geloescht;
      fi;
done
Allerdings würdest du nach der Methode auch die Wurzel -also das oberste Verzeichnis löschen, da ja dort eventuell weniger Unterverzeichnisse als drei sein könnten.

Um das zu umgehen, könntest du ein inneres find einsetzen, was nur Dateien und keine Verzeichnisse listet und zählt.

Deiner Phantasie sind hier keine Grenzen gesetzt.

Gruß Wolfgang
 
Hallo Wolfgang

Danke für deinen Input. Werde mit deinem Code weiterarbeiten.
Dann kann werd ich mal meine Fantasie walten lassen.

Hat mir sehr geholfen.
Danke und Gruss
fracle
 

Ähnliche Themen

Problem mit HSPA+ Modem Huawei E353 - Installation unmöglich?

Image Resizer

Doppelte Dateien finden und löschen

[RedHat] Seltsames Verhalten bei Cronjob... Hilfe!!

Java Development Kit Installation

Zurück
Oben