Hallo, hat jemand von euch ne Idee wie ich ein Shellscript machen koennte das in bestimmten Verzeichnissen nach dem vorhandenesein einer bestimmten Datei schaut und diese wenn se da ist loescht. Das ganze will ich dann als Cronjob laufen lassen Mit freundlichen Grüßen Uli Fremd
Uli Fremd, Freitag, 17. Oktober 2003 18:15:
hat jemand von euch ne Idee wie ich ein Shellscript machen koennte das in bestimmten Verzeichnissen nach dem vorhandenesein einer bestimmten Datei schaut und diese wenn se da ist loescht.
man test man rm Und ggf. man bash. -- Andreas Feile www.feile.net
Uli Fremd
Hallo,
man test man rm
Und ggf. man bash.
gibt es eine Anfaengerliste wo einem ggf. anders gehofen wird. Klar hast du recht aber fuer einen Anfaenger steht da so viel mit dem er dann nich so viel anfangen kann.
Probiers mal damit. #! /bin/sh datei="/Pfad/Datei" if [ -e "$datei" ] ; then # Wenn es auch ein Verzeichnis sein kann rm -R "$datei" fi if [ -f "$datei" ] ; then # Wenn es nur eine Datei sein kann rm "$datei" fi Gruß Marcus
Hallo Uli, On Fri, Oct 17, 2003 at 06:22:13PM +0200, Uli Fremd wrote:
man test man rm
Und ggf. man bash.
man find wäre da noch zu ergänzen.
gibt es eine Anfaengerliste wo einem ggf. anders gehofen wird. Klar hast du recht aber fuer einen Anfaenger steht da so viel mit dem er dann nich so viel anfangen kann.
bitte trotdem lesen und _versuchen_ zu verstehen. Bzw. ausprobieren weil wenn ich Dir alles erzähle ist a) die Doku für die Katz b) der lerneffekt == 0 c) kommt die Liste gar nicht mehr aus den Fragen raus. als Anfang kannst Du ja mal folgendes nehmen: find <VERZEICHNIS> -name "DATEINAME.ENDUNG" -exec rm -f {} \; -print ich bin aber nicht Schuld wenn du sowas als root eingibst ohne die Manpage zu lesen find / -name "*" -exec rm -f {} \; -print Wie gesagt ... ich war es dann nicht :-] Greetings Daniel -- No electrons were harmed during the production of this mail
Hallo, On Fri, 17 Oct 2003 at 18:22 (+0200), Uli Fremd wrote:
man test man rm
Und ggf. man bash.
gibt es eine Anfaengerliste wo einem ggf. anders gehofen wird. Klar hast du recht aber fuer einen Anfaenger steht da so viel mit dem er dann nich so viel anfangen kann.
eine sehr gute Doku über Shellprogrammierung findest Du unter http://123.koehntopp.de/kris/artikel/unix/shellprogrammierung/ Ansonsten sind die Unix-Manualpages auch wirklich nicht schlecht. Sie sind weniger dazu da, sich beispielsweise in Shellprogrammierung einzuarbeiten, aber man findet eine sehr übersichtliche Referenz, die praktisch auf jedem Unix-Rechner installiert sind. Ansonsten kann ich konkret mit Deiner Fragestellung nicht recht viel anfangen. Um beispielsweise rekursiv (d.h. mit Unterverzeichnissen) alle Dateien mit dem Namen "blahfasel" zu löschen, gibt man ein find . -name blahfasel -exec rm -f {} \; Allerdings kann man sich mit solchen Befehlen bei Fehlern auch sehr schnell viel kaputt machen. Deshalb: Genau die Syntax prüfen und ggf. vorher das "rm -f" durch ein "echo" ersetzen, damit die Dateinamen nur angezeichnet werden. Gruß, Bernhard -- _________ http://www.bwalle.de _________________________________________________ Ich habe solche Angst zu sterben. Aber damit verhindere ich nicht meinen Tod - sondern behindere mein Leben. -- Kristiane Allert-Wybranietz
Bernhard Walle wrote:
eine sehr gute Doku über Shellprogrammierung findest Du unter http://123.koehntopp.de/kris/artikel/unix/shellprogrammierung/
Die stabile URL lautet http://www.koehntopp.de/kris/artikel/unix/shellprogrammierung/. Kristian
Andreas Feile schrieb:
Uli Fremd, Freitag, 17. Oktober 2003 18:15:
hat jemand von euch ne Idee wie ich ein Shellscript machen koennte das in bestimmten Verzeichnissen nach dem vorhandenesein einer bestimmten Datei schaut und diese wenn se da ist loescht.
man test man rm
Und ggf. man bash.
Naja, für einen Einsteiger nicht sehr hilfreich oder? Ausserdem hast Du man find vergessen. find <verz2> <verz2> <..> -type f -name "<name>" -exec rm {} \; Wenn verz1 verz2 komplett unterschiedliche Pfade sind z.B /home und /usr Wenn alle Verrzeichnisse in einem übergeordneten liegen, z.B /home/hänsel /home/gretel dann reicht: find /home -type f -name "Böse.Hexe" -exec rm {} \; -- Gruss Bernd
participants (7)
-
Andreas Feile
-
Bernhard Walle
-
Daniel Lord
-
Illuminatus@t-online.de
-
Kristian Koehntopp
-
listen@my-mailserver.de
-
Marcus Habermehl