find . | grep -v "excluded files criteria" | xargs rm
Questo elencherà tutti i file nella directory corrente, quindi elencherà tutti quelli che non corrispondono ai tuoi criteri (fai attenzione ai nomi delle directory corrispondenti) e quindi rimuoverli.
Aggiornamento : in base alla tua modifica, se vuoi veramente cancellare tutto dalla directory corrente tranne i file che hai elencato, puoi usarlo:
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
Creerà una directory di backup /tmp_backup
(hai i privilegi di root, giusto?), Sposta i file che hai elencato in quella directory, elimina ricorsivamente tutto nella directory corrente (sai che sei nella directory giusta, vero?), Sposta torna alla directory corrente tutto da /tmp_backup
e, infine, elimina/tmp_backup
.
Scelgo la directory di backup da root, perché se stai cercando di eliminare tutto ricorsivamente dalla radice, il tuo sistema avrà grossi problemi.
Sicuramente ci sono modi più eleganti per farlo, ma questo è piuttosto semplice.