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 rmBefehl 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.
findmit der--deleteOption (keine Notwendigkeit,rmfür jede Datei auszuführen . Das ist unnötiger Aufwand) verwenden.