Maxwell: Löschen aller Textdateien

Hallo,

wie kann ich rekursiv alle Textdateien löschen? Das Problem ist eigentlich, dass ich ein Verzeichnis mit x tausend Textdateien habe und diese nicht über rm * löschen kann (zudem das Problem, dass diese in Subverzeichnissen sein können und dass die "Argument list too long" ist).

Test:
find | grep ".*.txt" | rm -

also find listet alle Dateien, grep lässt nur Textdateien durch und rm soll dann diese Dateien löschen. Funktioniert so aber nicht, da rm den getopt - (STDIN) nicht kennt.

Wie kann ich das anders machen?

Grüsse,

Maxwell

  1. Hallo,

    ich habe eine Lösung gefunden.

    find | grep ".*.txt" | rm -

    find -type f -name "*.txt" -exec rm "{}" ";"

    Ich weiss zwar noch nicht, wofür das ";" steht, aber vielleicht kann mir das noch jemand beantworten.

    Grüsse,

    Maxwell

    1. Hi Maxwell!

      Ich weiss zwar noch nicht, wofür das ";" steht, aber vielleicht kann mir das noch jemand beantworten.

      Naja:
      man find
      ergibt bei mir:
      (...)
      Actions
       - exec command ;
      (...) All following arguments to find are taken to be arguments to the command until an argument consisting of ';' is encountered. (...)

      Ergo: der Strichpunkt bedeutet für find, dass hier die Argumentenliste des ausgeführten Kommandos beendet ist.

      Grüsse,
      Richard