Сообщить об ошибке.

Функция symlink() модуля os в Python

Создать символическую ссылку из кода

Синтаксис:

import os

os.symlink(src, dst, target_is_directory=False, *, dir_fd=None)

Параметры:

  • src - str, путь в файловой системе на который указывает ссылка,
  • dst - имя ссылки (str путь в файловой системе),
  • target_is_directory=False - bool, в Windows ссылка как каталог.
  • dir_fd=None - int, дескрипторов каталогов.

Возвращаемое значение:

  • None

Описание:

Функция symlink() модуля os создает символическую ссылку, указывающую на src с именем dst.

Аргументы src и dst могут принимать объекты, представляющие путь файловой системы, такой как pathlib.PurePath.

Функция os.symlink() может поддерживать пути относительно дескрипторов каталогов dir_fd.

На платформах, отличных от Windows, target_is_directory игнорируется. В Windows символическая ссылка представляет собой либо файл, либо каталог и не преобразуется в целевой объект динамически. Если цель присутствует, то будет создан соответствующий тип символической ссылки. В противном случае символическая ссылка будет создана как каталог, если target_is_directory имеет значение True или файловая символическая ссылка (по умолчанию).

Примечание. В более новых версиях Windows 10 непривилегированные учетные записи могут создавать символические ссылки, если включен режим разработчика. Когда режим разработчика недоступен/не включен, требуется привилегия SeCreateSymbolicLinkPrivilege или процесс должен выполняться от имени администратора. Когда функция вызывается непривилегированным пользователем вызывается исключение OSError.

Вызывает событие аудита os.symlink с аргументами src, dst, dir_fd.

Доступность: Unix, Windows.

Примеры использования:

>>> import os
>>> src = '/usr/bin/python'
>>> dst = '/tmp/python'

>>> os.symlink(src, dst)
>>> os.readlink(dst)
# '/usr/bin/python'

>>> os.path.islink(dst)
# True

Создадим файл symlinks.py следующего содержания:

# symlinks.py
import os

link_name = '/tmp/' + os.path.basename(__file__)

print(f'Creating link {link_name} -> {__file__}')
os.symlink(__file__, link_name)

stat_info = os.lstat(link_name)
print('Permissions:', oct(stat_info.st_mode))

print('Points to:', os.readlink(link_name))

# Очистим
os.unlink(link_name)

Запустим файл:

$ python3 symlinks.py
Creating link /tmp/symlinks.py -> symlinks.py
Permissions: 0o120755
Points to: symlinks.py