RecreateDBLinks.sql is a script that will extract DB Links DDL (non SYS or SYSTEM links) and output a script that can be used to recreate those links at a later time or on a different database. It handles dealing with encrypted passwords and with logging on as the owninguser to create private database links.
It is presumed that non DBAs should not have CREATE DATABASE link. You can change this behavior by commenting out the REVOKE lines near the end of the script.
The source code is available here : RecreateDBLinks.sql.
Set your environment variables for the database you would like to generate the links for. On the same machine as the DB run the following:

sqlplus "/ as sysdba" @RecreateDBLinks.sql

A file will be spooled to the current directory. The filename will have today's date and the name of the DB you ran the script against.

/mounts/ora_home/app/oracle/david/scripts >ls -la
total 144
drwxrwx---   2 oracle   dba         4096 Jun  4 10:49 .
drwxrwx---  48 oracle   dba         8192 Jun  1 13:54 ..
-rw-rw-r--   1 oracle   dba         2007 Jun  4 12:49 20120604-ORGL11G-dblinks.sql
-rw-rw-r--   1 oracle   dba         3248 Jun  4 12:49 RecreateDBLinks.sql