bash: Daten rekursiv löschen

Bash - Bourne-again shell
26.03.2014

Es gibt eine ganze Menge Anwendungen, die aus unterschiedlichen Gründen ihre Spuren in ganzen Verzeichnissystemen hinterlassen. Manche diese Spuren sind kurzzeitig von Nutzen, etwa Sicherungsdateien (.bak) verschiedener Editoren, oder sind unabdingbar zum Funktionieren von Applikationen.

So legen etwa Versionsverwaltungssysteme (cvs oder subversion) Informationen in eigenen Unterverzeichnissen ab.

Es gibt nun verschiedene Bedürfnisse, diese Spuren aus einem Verzeichnis, samt Unterverzeichnissen zu tilgen. Weil man Speicher freigeben will oder weil eine Software an den Kunden übergeben werden soll.

Mit dem Befehl rm lassen sich einzelne Dateien oder ganze Verzeichnisse (mit Unterverzeichnissen) löschen.

Einzelne Datei löschen:

rm [Datei]

Alle Dateien mit einer bestimmten Endung löschen:

rm *.bak

Ein Verzeichnis rekursiv löschen:

rm -rf [Verzeichnis]

Will man jedoch ein ganzes Projekt von .svn Verzeichnissen befreien, ist man gut beraten, auf eine Kombination von rm und find zurückzugreifen:

find . -name '.svn' -type d -exec rm -rf '{}' \;

Und in ein kleines shell-Script verpackt:

#!/bin/bash

goAhead=N
echo "Dieses Script entfernt alle .svn Verzeichnisse mitsamt Inhalt."
echo "Wollen Sie fortfahren? [N/j]"
read goAhead

if [ ! $goAhead ]
then
    echo "Das Script wird jetzt abgebrochen."
    exit;
else
    if [ $goAhead != j ]
    then
        echo "Das Script wird jetzt abgebrochen."
        exit;
    fi
fi

find . -name '.svn' -type d -exec rm -rf '{}' \;
comments powered by Disqus

The Notwist

Bellevue di Monaco

Ich bin ein wütender Mop

Während in Dresden erneut der braune Mob über die Straßen fegt, setzt München ein eindrucksvolles Zeichen für Offenheit und Toleranz.

Der umtriebige Till Hofmann aktivierte namhafte Künstler (u.a. Konstantin Wecker) und Politiker, sowie jede Menge Münchner und Münchnerinnen um zu zeigen, dass in München kein Platz für kleinkarierte Ressentiments und rassistische Hetze ist.

A ? B C D E F G H I J K L M N O P Q R S T U V W Z