find . | grep -v "excluded files criteria" | xargs rm
Dadurch werden alle Dateien im aktuellen Verzeichnis aufgelistet, dann alle Dateien aufgelistet, die nicht Ihren Kriterien entsprechen (achten Sie darauf, dass sie mit den Verzeichnisnamen übereinstimmen), und sie werden dann entfernt.
Update : Wenn Sie basierend auf Ihrer Bearbeitung wirklich alles aus dem aktuellen Verzeichnis löschen möchten, außer den von Ihnen aufgelisteten Dateien, kann dies verwendet werden:
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
Es wird ein Sicherungsverzeichnis erstellt /tmp_backup
(Sie haben Root-Rechte, oder?), Die aufgelisteten Dateien in dieses Verzeichnis verschieben, alles im aktuellen Verzeichnis rekursiv löschen (Sie wissen, dass Sie sich im richtigen Verzeichnis befinden, oder?), Verschieben zurück zum aktuellen Verzeichnis alles aus /tmp_backup
und schließlich löschen /tmp_backup
.
Ich wähle das Sicherungsverzeichnis im Stammverzeichnis aus, denn wenn Sie versuchen, alles rekursiv aus dem Stammverzeichnis zu löschen, hat Ihr System große Probleme.
Sicher gibt es elegantere Möglichkeiten, dies zu tun, aber diese ist ziemlich einfach.