find and exec

Hi,
Happy new year.
Would you be so kind to explain me what does this instruction :
find /rep/app -type l -exec ls -l {} \;> allink.lst
Many thanks.

find /rep/app -type l -exec ls -l {} \;> allink.lst

find in folder /rep/app all files which are of type:symbolic links and then perform a ls -l on those files. Output everything to alllink.lst

The {} are kinda placeholders for the files found by the find command.

; indicates the end of arguments to the exec command. You need to escape the ;

Hence \;

I tried this command but it seems to output directory as well.
Is dir a type of plain file too?
find /rep/app -type f -exec ls -l {} \;> allink.lst

If yes, any idea how to exclude dir and softlinks, pipes, etc.... I only want plain file

Tks.