# Метод link

Метод `link` изменяет путь к файлу и соответственно может установить новое название файла. Метод возвращает новый файл, а исходный файл остается на прежнем пути. В первом параметре указываем исходный путь к файлу, во втором параметре - новый путь к файлу, в третьем необязательном параметре указываем коллбэк.

## Синтаксис

`fs.link(исходный путь, новый путь, [коллбэк]);`

## Пример

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

<$structure$> /dir1/ /dir1.2/ file1.txt file2.txt /dir2/ file3.txt <-structure->

Давайте асинхронно установим новый путь к файлу `file1` через `await`:

`import fs from 'fs/promises'; try { await fs.link('./dir1/dir1.2/file1.txt', './dir2/file1.txt'); console.log('path changed'); } catch (err) { console.log(err); }`

## Пример

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

`import fs from 'fs/promises'; fs.link('./dir1/dir1.2/file1.txt', './dir2/file1.txt').then(() => { console.log('path changed'); }).catch((err) => { console.log(err); });`

## Пример

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

`import fs from 'fs'; fs.link('./dir1/dir1.2/file1.txt', './dir2/file1.txt', err => { if (!err) { console.log('path changed'); } else { console.log(err); } });`

## Пример

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

`import fs from 'fs'; try { fs.linkSync('./dir1/dir1.2/file1.txt', './dir2/file1.txt'); console.log('path changed'); } catch (err) { console.log(err); }`

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

- метод `rename`,
  который переименовывает файл
- метод `cp`,
  который копирует папку
- метод `symlink`,
  который создает символическую ссылку

← →
↑