Do you have any other working rules? Have you tried a simple single-URL redirect rule?
Either you're missing the required "set-up" directives to enable mod_rewrite and turn on the rewriting engine, or your URL patterns are incorrect. Be aware that in a .htaccess context, the pattern in the RewriteRule does not start with a slash, but the pattern in a RewriteCond examining REQUEST_URI must.
So... one or more of the changes here might help:
RewriteCond %{REQUEST_URI} ^/link-1\.html$ [OR]
RewriteCond %{REQUEST_URI} ^/aalink-2\.html$ [OR]
...
RewriteCond %{REQUEST_URI} ^/liasdnk-239\.html$
RewriteRule ^ http://www.example.com/ [R=301,L]
Note also that literal periods in patterns must be escaped as shown.
Consider also such performance optimizations as:
RewriteCond $1 ^link-1$ [OR]
RewriteCond $1 ^aalink-2l$ [OR]
...
RewriteCond $1 ^liasdnk-239$
RewriteRule ^([^.]+)\.html$ http://www.example.com/ [R=301,L]
In this second example, none of the RewriteConds are processed unless the requested URL-path ends with ".html", and none of those RewriteConds needs to re-check for the .html extension if they do get executed. Since most requests to a typical site will be for images, this can make a big difference in performance.
However, note that I also agree that redirecting this many URLs to your index page is going to look spammy to the search engines at worst, and be taken as a sign of very poor site design and maintentance at best -- As Tim Berners-Lee, the inventor of the hyperlink, put it: "
Cool URIs don't change [w3.org]." I would suggest picking only the top handful of URLs and redirecting only those, while generating a 410-Gone response for the rest. You get to decide what is meant by "the top URLs," though.
Jim