Wie mit 'rm' alles löschen außer einer bestimmten Datei?

ww

Well-Known Member
Morgen, Ihr Gurus.

Kann man (man kann bestimmt) den Inhalt eines Verzeichnisses mit Ausnahme einer Datei löschen? In 'man rm' habe ich nichts gefunden.

Ich möchte alles außer .htaccess löschen, suche also eine Art negative Wildcard.

Danke,
ww
 
Danke Euch beiden. Es geht also doch nicht so einfach wie ich dachte. Den Dreizeiler von dettus hatte ich mir so ähnlich gedacht, abere geglaubt, es ginge eleganter...

@MrFixit: Eine Lösung für harte Männer :-) Ich habe mir eben 'man find' angeschaut und werde es mir an langen Winterabenden tiefer anlesen.

Thx,
ww
 
find . -sonstigeParameter -print0 |xargs -0 rm

ist gerade bei vielen Dateien wesentlich schneller, nicht nur bei rm.

Und ich wette in der zsh geht es mit nem einfachen rm, wenn man den parameter richtig wählt. :)

edit: mir ists gerade wieder eingefallen:
Code:
% touch a b c
% rm ^a
% ls
a

edit2:
@dettus: das beispiel ist nicht so gut, da .htaccess bei rm * sowieso nicht mitgelöscht wird ;)
 
Zuletzt bearbeitet:
Maledictus schrieb:
find . -sonstigeParameter -print0 |xargs -0 rm

NACK, du hast zusaetzlich eine Pipe und xargs(1) muss staendig fork()en um rm(1) auszufuehren. Aber meine find(1) Zeile ist auch nicht optimal (muss ebenfalls forken, sogar viel oefter).

Natuerlich nimmt man: find . -not -name foo -delete

Und ich wette in der zsh geht es mit nem einfachen rm, wenn man den parameter richtig wählt. :)
...[/code]
Gibts da ne kompakte Uebersicht fuer? Verwende zwar auch zsh, aber habe mich noch nicht wirklich darin eingearbeitet
 
Zurück
Oben