# Метод readlink

Метод `readlink` читает содержимое символической ссылки. В первом параметре метода указывается путь символической ссылки. Во втором необязательном параметре задаем кодировку (по умолчанию она равна `'utf8'`), в третьем необязательном параметре указываем коллбэк.

## Синтаксис

`fs.readlink(путь символической ссылки, [кодировка], [коллбэк]);`

## Пример

Пусть у нас есть следующая файловая структура:

<$structure$> /dir/ file.txt <-structure->

Давайте сначала асинхронно создадим символическую ссылку, а затем прочитаем ее через `await`:

`import fs from 'fs/promises'; try { await fs.symlink('./dir/file.txt', './dir/symlink', 'file'); console.log('symlink created'); } catch (err) { console.log(err); } try { let data = await fs.readlink('./dir/symlink'); console.log(data); } catch (err) { console.log(err); }`

Результат выполнения кода:

`'.\dir\file.txt'`

## Пример

Теперь давайте асинхронно через `then` прочитаем символическую ссылку, созданную в предыдущем примере:

`import fs from 'fs/promises'; fs.readlink('./dir/symlink').then((data) => { console.log(data); }).catch((err) => { console.log(err); });`

## Пример

Теперь давайте асинхронно прочитаем символическую ссылку через коллбэк:

`import fs from 'fs'; fs.readlink('./dir/symlink', function(err, data) { if (!err) { console.log(data); } else { console.log(err); } });`

## Пример

Теперь давайте синхронно прочитаем символическую ссылку через `readlinkSync`:

`import fs from 'fs'; try { let data = fs.readlinkSync('./dir/symlink'); console.log(data); } catch (err) { console.log(err); }`

## Смотрите также

- метод `symlink`,
  который создает символическую ссылку
- метод `unlink`,
  который удаляет символическую ссылку или файл

← →
↑