Es gibt viele Situationen, in denen die Verwendung von a *
praktisch unvermeidlich ist - z. B. rm -rf *
in einem Ordner, der Tausende von Unterordnern und Dateien enthält.
Was aber, wenn Sie nur ein oder zwei Dateien oder Ordner vom rm
Befehl ausschließen möchten ? Ich habe mich durchgegoogelt und nur recht komplizierte Lösungen gefunden, wie hierfind . -depth -not \( -name 'one' -o -name 'two' \
-o -name 'three' \) -exec rm {} \;
angegeben .
Gibt es eine Möglichkeit, dies auf einfachere Weise zu tun - ohne diesen Umweg find
? ZB rm -rf --exclude='one' --exclude='two' --exclude='three' *
wie in rsync oder einfach rm -rf -e 'one','two','three' *
?
Vielleicht sogar eine allgemeine Möglichkeit auszuschließen , die Dinge aus *
(so andere Befehle wie cp
, mv
... müssen nicht ihre eigenen implementieren)? Sowas *{'one','two','three'}
oder so?
mv -t /tmp one two three && rm -rf * && mv -t . /tmp/one /tmp/two /tmp/three
, aber ich würde eine Lösung vorziehen, die die Möglichkeit bietet, explizit etwas davon auszuschließen *
. Es wird sicherlich Situationen geben, in denen das Verschieben oder Kopieren der Dateien zu einem anderen Ziel nicht möglich ist.
find
mit der--delete
Option (keine Notwendigkeit,rm
für jede Datei auszuführen . Das ist unnötiger Aufwand) verwenden.