Les liens symboliques sont créés par la présence de l'option -s dans la commande ln :
ln -s nom_pointé nom_du_symlink
Bien que la syntaxe (l'ordre des arguments) soit similaires à celles des commandes cp et mv, elle est finalement contre-intuitive, et il arrive souvent que l'ordre des paramètres soit inversé par erreur, ce qui aboutit à des résultats surprenants : le lien est créé à l'intérieur du répertoire pointé, et se référence lui-même. L'origine de cette erreur provient probablement que l'on transpose mentalement la phrase « je veux aller de nom_du_symlink à nom_pointé » dans laquelle l'ordre des objets est exactement l'inverse de ce qu'ils seront dans la commande.
À noter qu'avec la version Gnu de cp, il est possible de créer de façon beaucoup plus intuitive un lien symbolique vers un fichier donné. Ceci ne fonctionnera cependant pas avec les répertoires. De plus, puisque cela n'est pas POSIX, il n'est pas recommendé d'utiliser ceci dans un script (la version BSD de cp, entre-autre, ne supporte pas cette option).
cp -s fichier_pointé nom_du_symlink
La plupart des opérations (ouverture, lecture, écriture) sur un symlink le déréférence automatiquement et opèrent sur sa destination (le fichier ou répertoire réel). La suppression (rm) ou le déplacement/renommage (mv) portent sur le lien et n'affectent pas le fichier.
Un symlink a toujours les mêmes droits d'accès que le fichier sur lequel il pointe. En réalité, les droits d'accès indiqués pour un lien symbolique sont sans signification. La commande chmod déréférence toujours les fichiers qui lui sont passé en argument et il n'est donc pas possible de donner des autorisations spécifiques au symlink.
La commande d'affichage de contenu de répertoire ls représente les liens symbolique de la façon suivante :
lrwxrwxrwx 1 root root 9 2005-08-26 21:47 python -> python2.3
Le 'l' de la première colonne indique que cette entrée est un lien symbolique. A l'extrême droite de la ligne sont affichés les caractéristiques de ce symlink : quand l'utilisateur accèdera à python, il sera redirigé de façon transparente par le système à python2.3. Dans cet exemple, le lien symbolique a été créé pour conserver à la fois plusieurs versions (2.1, 2.2, 2.3, ...) du langage python.
Contrairement aux liens matériels, les liens symboliques peuvent pointer sur des fichiers, des répertoires, sur eux-mêmes ou sur des destinations qui n'existent pas (l'existence du nom_pointé n'est même pas vérifiée lors de la création du lien par la commande ln). C'est seulement au moment d'accéder à un symlink que la vérification est faite. Quand la destination d'un lien symbolique n'existe pas, on dit que le « lien est cassé » (broken link en anglais). Une tentative d'ouvrir un lien cassé conduit à un message d'erreur de type « fichier non trouvé », assez surprenant car le symlink existe bel et bien.
Les liens symboliques peuvent être source de mauvaises surprises aux débutants, car ils donnent l'impression qu'un fichier est présent de multiples fois dans l'arborescence du Système de fichiers. Une suppression de la destination, faite dans l'illusion que ce même fichier est en sécurité ailleurs (alors que ce ne sont que des liens), conduit pourtant à la perte définitive du fichier, et casse instantanément tous les symlinks qui pointaient dessus.
Certains vieux programmes, créés alors que les liens n'existaient pas, peuvent avoir des conséquences assez catastrophiques quand ils sont confrontés à des liens, qu'ils soient symboliques ou matériels. Dans le meilleur des cas, ils peuvent tomber dans une boucle sans fin en tentant de suivre indéfiniment une arborescence liée sur elle-même. Au pire, la suppression d'un symlink pointant sur un répertoire conduira à la suppression du contenu du répertoire lié. Fort heureusement, la gestion des liens par Unix est assez ancienne, et il est peu probable de rencontrer de tels programmes. Cependant, cela n'empêche pas le système de se protéger en interdisant, par exemple, la suppression d'un symlink pointant sur un répertoire au moyen de la commande rmdir (comportement typique d'un programme non prévu pour les liens).