find . | grep -v "excluded files criteria" | xargs rm
Isso listará todos os arquivos no diretório atual e, em seguida, todos aqueles que não correspondem aos seus critérios (cuidado com os nomes dos diretórios correspondentes) e depois os remove.
Atualização : com base na sua edição, se você realmente deseja excluir tudo do diretório atual, exceto os arquivos listados, isso pode ser usado:
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
Ele criará um diretório de backup /tmp_backup
(você tem privilégios de root, certo?), Moverá os arquivos listados para esse diretório, excluirá recursivamente tudo do diretório atual (você sabe que está no diretório certo, não é?), Moverá de volta ao diretório atual /tmp_backup
e, finalmente, exclua /tmp_backup
.
Eu escolho o diretório de backup como raiz, porque se você estiver tentando excluir tudo recursivamente da raiz, seu sistema terá grandes problemas.
Certamente, existem maneiras mais elegantes de fazer isso, mas essa é bem direta.