Verzeichnis löschen wenn eine bestimmte Datei darin liegt

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von arndtw, 24.09.2007.

  1. arndtw

    arndtw Grünschnabel

    Dabei seit:
    24.09.2007
    Beiträge:
    2
    Zustimmungen:
    0
    Hallo zusammen,
    ich benutze die bash unter verschiedenen Suse-Versionen und möchte gerne folgendes erreichen:

    Ich möchte einen Verzeichnisbaum durchsuchen und wenn in einem Verzeichnis eine Datei bestimmten Namens liegt (als Löschmarkierung) dann soll dieses Verzeichnis mit samt Inhalt gelöscht werden.

    Meine Versuche mit find scheitern bisher leider an der Ausgabe des find-Befehls.

    find /home2/Struktur -name ACHTUNG_VERZEICHNIS_WIRD_ENTFERNT -print0 -printf %h |xargs -0 rm -rf

    In den Verzeichnisnamen können Leerzeichen vorkommen.

    Wie gehts richtig?

    Danke

    Gruss Wolfgang
     
  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 Gott_in_schwarz, 24.09.2007
    Zuletzt bearbeitet: 24.09.2007
    Gott_in_schwarz

    Gott_in_schwarz ar0

    Dabei seit:
    22.04.2007
    Beiträge:
    546
    Zustimmungen:
    0
    Ort:
    Niedersachsen
    Ein kleiner Workaround

    Da das ganze im shell-Skript Sub-Forum angesiedelt ist, hoffe ich mal, ich kann die Operation auf mehrere Kommandos auslagern ;)
    Code:
    #!/bin/bash
    find /home/user -mindepth 2 -name foo.bar -exec dirname {} >> tmp \;
    cat tmp | while read line ; do rm -r "$line" ; done
    rm tmp
    Vorraussetzungen: Das Verzeichnis in dem das Skript ausgeführt wird muss schreibbar sein für den ausführenden User (wegen der tmp Datei). Außerdem sollte es in dem Ordner keine Datei namens 'tmp' geben. Man kann die tmp-Datei ja noch etwas ausgefallener benennen um Überschneidungen sehr unwahrscheinlich zu machen. Das '-mindepth 2' kommt, weil 'rm -r .' nicht möglich ist. (Sprich: es werden nur Unterverzeichnisse von /home/user und nicht /home/user selbst in das find-Kommando einbezogen.)
     
  4. arndtw

    arndtw Grünschnabel

    Dabei seit:
    24.09.2007
    Beiträge:
    2
    Zustimmungen:
    0
    Danke,
    so geht es. Der Befehl dirname war mir nicht bekannt.

    Gruss Wolfgang
     
Thema:

Verzeichnis löschen wenn eine bestimmte Datei darin liegt

Die Seite wird geladen...

Verzeichnis löschen wenn eine bestimmte Datei darin liegt - Ä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...