find . | grep -v "excluded files criteria" | xargs rm
При этом будут перечислены все файлы в текущем каталоге, затем перечислены все те, которые не соответствуют вашим критериям (остерегайтесь совпадения с именами каталогов), а затем удалите их.
Обновление : на основе ваших правок, если вы действительно хотите удалить все из текущего каталога, кроме файлов, которые вы перечислили, это можно использовать:
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
Это создаст резервную копию каталога /tmp_backup
(у вас есть права root, верно?), Переместит файлы, которые вы перечислили в этот каталог, рекурсивно удалите все в текущем каталоге (вы знаете, что вы находитесь в правильном каталоге, не так ли?), Переместите вернуться к текущему каталогу все /tmp_backup
и, наконец, удалить /tmp_backup
.
Я выбираю каталог резервного копирования в качестве корневого, потому что если вы пытаетесь рекурсивно удалить все из корневого каталога, у вашей системы будут большие проблемы.
Конечно, есть более элегантные способы сделать это, но этот довольно простой.