it-swarm.com.de

Ist es möglich, einige Dateien von rm -rf auszuschließen?

Ich habe ein Verzeichnis, das von einem anderen Benutzer gefüllt wird, und ich bin damit beauftragt, es zu pflegen. Ich möchte den gesamten Inhalt mit Ausnahme von 2 Dateien mit einem bestimmten Namen löschen. Ist das mit rm möglich oder soll ich das machen:

cp aaa/a ./a && cp aaa/b ./b && rm -rf aaa/* && mv ./a aaa/a && mv ./b aaa/b

dabei ist aaa das Verzeichnis, a,b die Dateien, die ich behalten möchte, und es gibt (zumindest möglicherweise) andere Dateien/Verzeichnisse darin.

Gibt es einen besseren (und kürzeren) Weg?

3
CIsForCookies

Mit Bash erweiterte Globs gegeben

$ tree aaa
aaa
├── a
├── b
├── c
├── d
├── e
└── subdir

dann

rm -rf aaa/!(a|b)

blätter

$ tree aaa
aaa
├── a
└── b

0 directories, 2 files
8
steeldriver