Inverse delete with shopt in Linux with bash

The scenario: I want to delete all sub-directories and files  except a directory and a file, within a directory.

Enable globbing:

shopt -s extglob

Make me a list:

echo rm -rf !(cgi-bin|favicon.ico)

Execute list:

rm -rf app cron.php downloader errors get.php includes index.htm.old index.php index.php.sample install.php js lib LICENSE_AFL.txt LICENSE.html LICENSE.txt mage media php.ini.sample pkginfo RELEASE_NOTES.txt shell skin tempstyle.css var