Unterverzeichnisse löschen

P

prey

Grünschnabel
Hallo zusammen,
habe hier an einer Schule folgendes Problem:

Jedem Schüler wird per Samba ein Verzeichniss zugewiesen, in dem er seine Daten speichern kann. Die Verzeichnissstruktur sieht im System folgendermaßen aus: /home/klasse/schuelername

Im Homeverzeichniss wurde früher in einem Unterverzeichniss (/home/klasse/schuelername/profiles) das entsprechende Windows-Profil des Schülers gespeichert. Da wir aber nun auf Mandatory umgestellt haben sind diese Verzeichnisse reiner Datenmüll, der weg kann.

Habe es mit find /home /profile -exec rm {} \; versucht, das nen paar Threads weiter unten erklärt wurde. Dies hatte aber zur Folge, dass sämtliche Daten aus den Schülerordner gelöscht wurden. Nur die Verzeichnisse (auch das profil-verzeichniss samt Unterordner) blieben stehen. Leider ist mir völlig schleierhaft wieso und wie ich überhaupt weiter vorgehen soll :(
Ich weiss noch nicht einmal, ob ich mit 'find' den richtigen Befehl nutze. Kann man damit überhaupt explizit nach Verzeichnissen suchen?

Gruß
Robert
 
Ich habe es jetzt nicht ausprobiert aber du solltest vor dem /profile zumindest mal ein -path schreiben. Ausserdem würde ich den / vor dem profile weglassen.
 
Hallo

Wenn du mit find nur nach Verzeichnissen suchen willst, dann gibt es dafür das Suchkriterium -type d
Weiterhin kannst du zusätzliche Einschränkungen nutzen.
Wenn du nicht leere Verzeichnisse löschen willst, solltest du immer bedenken, dass find bis in die Spitze vordringen will. Löscht du nun ein solches, dann ist es nicht mehr möglich. Deshalb in solch einem fall die Suchreihenfolge umkehren. Option -depth betrachtet erst den inhalt des Verzeichnisses.
Wenn du die Suchtiefe kennst, kannst du diese auch einschränken.
Beispiel
find /home/klasse -type d -iname "profiles" -depth -exec echo "rm -rf "{} \;
Aber Vorsicht mit -exec rm -rf !
Erst vorher ohne testen, bevor du das echo rausnimmst!
Sollten zu viele Verz. ausgespuckt werden (Arguments to long), musst du mit xargs arbeiten.
Gruß Wolfgang
 
Hallo,

Wenn du deinen "Datenmüll" beseitigt hast folgender Vorschlag zur Schülerverwaltung:
(ich hoffe, ich drücke mich verständlich genug aus)

Verwende als User-Bezeichnung der Arbeitsplätze z.B. "RaumAP1" bis "RaumAP20"
So heißen dann auch die *nix-User...

Lege das verz. "/home/Klassenverzeichnis" an,
Dort erzeugst du mittels script die Arbeitsplätze "AP1" bis "AP20" für meinetwegen den Kurs "Info_02"
Sage dem Script, dass es dir nach Aufforderung durch den Lehrer
Den entsprechenden Klassensatz in das Home-Verzeichniss der Schüler verlinkt...

Damit hat der Schüler jeweils nur einen bestimmten Kurs zu Verfügung.
Und ein "Vorlagen-Verzeichnis" für die infos vom Lehrer an den Schüler gibt es auch.....

So läuft es bei "uns".
Und du kannst entscheiden, ob und in welcher Form ein Zugriff genemigt wird.

Gruß Lumpi

PS: Ich hab dieses Script, was schon eher ein "Programm" ist.... ;)
 
Wenn du eine Liste mit den Schülernamen+Klasse hast ist es eigentlich einfach:
in einer for schleife rm -rf /home/$klasse/$schuelername/profiles
Die Listen kannst du auch selbst erzeugen, indem du in home gehst, ls -1 machst hast du die Liste aller Klassen, dann eine for Schleife, die in jeder Klasse einen ls -1 macht, dann hast du die Schülerliste, mit der du in jedem Schülerordner reingehen kannst und rm -rf profiles machen kannst.

Viel Spaß
 
Vielen Dank euch allen ihr habt mir alle weitergeholfen. Letztendlich konnte ich mit Wolfgangs Tipp am meisten anfangen. Vielen Dank nochmal.

Gruß
Robert
 

Ähnliche Themen

Diveres Anfängerfragen

Samba als PDC [Short-HOWTO]

Zurück
Oben