LINUX.ORG.RU

Создание симлинков через Python

 ,


0

1

Возникла потребность создавать в питоноскрипте симлинки на файл на другой ФС. В стандартной либе что-то не нашел инструментов для этого: os.symlink выдает [Errno 18] Invalid cross-device link, в shutil ничего по теме нету, вызывать ln через subprocess не хочется. Какого-то готового решения, работающего как ln -s /fs1/a /fs2/b, загуглить не удалось. Может кто знает, как решить эту задачу?

P.S. СPython 3.4-3.6 на дебиане.

EDIT: блин, в спешке перепутал os.link и os.symlink.

★★★

Последнее исправление: lu4nik (всего исправлений: 1)

вызывать ln через subprocess не хочется.

Почему?

legolegs ★★★★★
()
Ответ на: комментарий от Deleted

Конечно, работает. Как я понял, os.link — тонкая обертка над соответствующим системным вызовом и не делает более крутых штук, как ln. Аналогичная хрень с os.rename — он не может переносить на другие ФС. Но тут хотя бы есть shutil.move.

EDIT: os.symlink, конечно.

lu4nik ★★★
() автор топика
Последнее исправление: lu4nik (всего исправлений: 1)
Ответ на: комментарий от TeopeTuK

Который НЕ работает, если путь назначения на другой ФС.

lu4nik ★★★
() автор топика

Отбой, это всё кривые руки, которые впереди головы. Работает этот os.symink так, как надо.

lu4nik ★★★
() автор топика
Ответ на: комментарий от lu4nik

Это кривая голова впереди рук. Ман симлинк, ман хардлинк.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.