find . | grep -v "excluded files criteria" | xargs rm
Spowoduje to wyświetlenie listy wszystkich plików w bieżącym katalogu, a następnie wszystkich tych, które nie spełniają Twoich kryteriów (uważaj, aby pasowały do nazw katalogów), a następnie usuń je.
Aktualizacja : na podstawie dokonanej edycji, jeśli naprawdę chcesz usunąć wszystko z bieżącego katalogu oprócz wymienionych plików, możesz tego użyć:
mkdir /tmp_backup && mv textfile.txt backup.tar.gz script.php database.sql info.txt /tmp_backup/ && rm -r && mv /tmp_backup/* . && rmdir /tmp_backup
Stworzy katalog kopii zapasowej /tmp_backup
(masz uprawnienia roota, prawda?), Przeniesie wymienione pliki do tego katalogu, usunie rekurencyjnie wszystko w bieżącym katalogu (wiesz, że jesteś we właściwym katalogu, prawda?), Przeniesiesz z powrotem do bieżącego katalogu wszystko /tmp_backup
i na koniec usuń /tmp_backup
.
Wybieram katalog kopii zapasowej jako root, ponieważ jeśli próbujesz usunąć wszystko rekurencyjnie z roota, twój system będzie miał duże problemy.
Z pewnością istnieją bardziej eleganckie sposoby na zrobienie tego, ale ten jest dość prosty.