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

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von fracle, 20.09.2007.

  1. fracle

    fracle Grünschnabel

    Dabei seit:
    11.11.2005
    Beiträge:
    2
    Zustimmungen:
    0
    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
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #2 Wolfgang, 20.09.2007
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    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
     
  4. fracle

    fracle Grünschnabel

    Dabei seit:
    11.11.2005
    Beiträge:
    2
    Zustimmungen:
    0
    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
     
Thema:

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

Die Seite wird geladen...

Verzeichnis löschen falls weniger als 3 Files drin sind! - Ähnliche Themen

  1. Unlöschbares Verzeichnis von NTFS-Partition löschen

    Unlöschbares Verzeichnis von NTFS-Partition löschen: Hallo! Ich habe eine NTFS-formatierte externe Festplatte, die ich über ntfs-3g nutze. Unter Anderem zur Datensicherung per backintime. Dort...
  2. Script zum Bereinigen von Dateien mit Unterverzeichnissen (Schadcode löschen) eilt

    Script zum Bereinigen von Dateien mit Unterverzeichnissen (Schadcode löschen) eilt: Ich tue mich etwas schwer mit shell-Scripten und benötige dringen ein ständig anpassbares Script, das immer ab dem Stammverzeichnis in dem ich...
  3. Seltsame Sache beim löschen eines Verzeichnisses

    Seltsame Sache beim löschen eines Verzeichnisses: Habe mir ne Präsentation vom We-Pad heruntergeladen, nach dem auspacken war aus der Präsentation eine "Pr?sentation" geworden. Diese lies sich...
  4. Verzeichniss per klassichen FTP Client löschen

    Verzeichniss per klassichen FTP Client löschen: Hallo, mit klassischen meine ich diesen uralt Komandozeilen Client. Das Problem liegt darin das rmdir seinen Dienst verweigert. Das zu...
  5. wie kann ich das löschen eines verzeichnisses verhindern/mitloggen ?

    wie kann ich das löschen eines verzeichnisses verhindern/mitloggen ?: hallo zusammen, gibt es rechteeinstellungen, die erlauben ein verzeichnis readable und writeable zu machen, aber dessen löschung zu verhindern...