On Wed, 04 Sep 2002, Patrick Hornung wrote: > Ich habe mich entschlossen, selbst compilierte Programme auf dem Server > unter /usr/local zu speichern. Dieses wird über nfs gemountet. > Nun brauche ich die gleichen Dateien auf den Clienten unter /usr nicht > mehr. Die möchte ich löschen. Habe bis jetzt folgenden Befehl: > > find /usr/local | awk '{ gsub("/local/","/"); print }' > > Damit werden also alle Dateien und Verzeichnisse Zeilenweise > aufgelistet, und /local im Pfad entfernt. > Nun weis ich nicht weiter. Ich möchte Zeilenweise überprüfen, ob die > jeweilige Resource existiert. Wenn ja soll überprüft werden, ob es sich > um eine Datei oder ein Verzeichnis handelt. Wenn es eine Datei ist, soll > diese gelöscht werden. for i in `find /usr/local -type f | awk '{ gsub("/local/","/"); print }'`; do if [ -f $i ]; then echo "Ich lösche jetzt $i" fi done > Danach wäre eigentlich noch schön, wenn leere Verzeichnisse gelöscht > würden, aber das könnte man dann ja per Hand machen. for i in `find /usr/local -type d | awk '{ gsub("/local/","/"); print }'`; do if [ -d $i ]; then if [ `echo $i/*` = "$i/*" ]; then echo "Ich lösche jetzt $i" fi fi done *!!Achtung!!* Dieses Ungetüm erkennt leider nicht ob noch Dot-Files (z.B.: .bla) in den Ordnern sind. Und mit Sicherheit gibt's noch smartere Lösungen um herauszufinden ob ein Ordner leer ist! Gruß, Markus PS.: Vorsicht mit dem Zeugs da oben ... ;-) -- Vi is to Emacs as masturbation is to making love: effective and always available but probably not your first choice.
Attachment:
pgpEihlWa0hJO.pgp
Description: PGP signature