[linux-l] rm -r

Volker Grabsch vog at notjusthosting.com
So Okt 28 13:18:49 CET 2007


On Sun, Oct 28, 2007 at 11:44:46AM +0100, Boris Kirkorowicz wrote:
> Also will ich alle *.msf-Dateien unterhalb von mail/ löschen. Dazu
> begebe ich mich in dieses Verzeichnis und setze den Befehl
> rm -r *.msf
> ab. Doch rm beschwert sich, dass es die Datei nicht findet.

Zwei mögliche Probleme:

    1) Der Befehl löscht keine versteckte Dateien (die mit "." beginnen)
    2) Der Befehl löscht *nicht* in Unterverzeichnissen
    3) Der Befehl löscht ganze Unterverzeichnisse (gefährlich!)

Beachte den subtilen Unterschied zwischen 2) und 3).

Ein Verzeichnis "aaaa.msf" würde rekursiv gelöscht werden, aber eine
Datei "aaaa/bbbb.msf", also in einem Unterverzeichnis, würde nicht
gelöscht werden.

Problem 3) vermeidest du, indem du "-r" weglässt, und nur "rm" nutzt.
Problem 1) und 2) vermeidest du, indem du nicht "*.msf" direkt benutzt,
sondern erstmal rekusriv nach allen Dateien der Form *.msf" suchst.

Das reine Suchen (auch nach versteckten Dateien) geht via:

    find -name '*.msf'

Starte den Befehl und schaue zuerst, ob er wirklich die gewünschten
Dateien findet, und nur die! Wenn dieser Test gut gegangen ist, kann
du für jeden der Dateien einen "rm"-Befehl starten. Das geht via:

    find -name '*.msf' -exec rm {} \;

> Also werfe
> ich mit touch test.msf ihm eine Datei zum Fraß vor, die es auch löscht,
> aber nach wie vor die Unterverzeichnisse nicht anrührt. Auch
> rm -rf *.msf oder rm -rf ./*.msf bringen keinen Erfolg.

Diese beiden Effekte sollten anhand meiner vorherigen Ausführungen
nun klar sein.


Gruß,

    Volker

-- 
Volker Grabsch
---<<(())>>---
Administrator
NotJustHosting GbR



Mehr Informationen über die Mailingliste linux-l