LinuxForum.Fans
Тема

Lua + LuaFileSystem: символьные ссылки

Автор: xxblx 3 сообщений 3114 просмотров
#304676

В общем, вопрос элементарный, но я уже вот-вот мозг сломаю.

Как не пытаюсь создать ссылку/символьную ссылку средствами LuaFileSystem - каждый раз ошибка.

Почитал оф мануал на модуль, в нем указано так:

lfs.link (old, new[, symlink])

Ну ок, думаю, пишу и запускаю

text
require "lfs"
lfs.link('file1', 'file2').symlink

Получаю вывод

text
lua: symlink.lua:6: '=' expected near '<eof>'

Запускаю

text
require "lfs"
lfs.link('file1', 'file2', symlink)

Получаю

text
lua: symlink.lua:5: attempt to call field 'link' (a nil value)
stack traceback:
    symlink.lua:5: in main chunk
    [C]: ?

При этом пишу какой-нибудь другой код с использованием этого модуля, например

text
require "lfs"
print("Текущий каталог: "..lfs.currentdir())

for file in lfs.dir(".") do local f = "."..'/'..file local s = lfs.attributes(file).size print("Файл: "..f.." Размер: "..s.." байт") end

Все работает нормально, на выходе получаю

text
Текущий каталог: /home/duke/исходники/Lua
Файл: ./функции.lua Размер: 145 байт
Файл: ./.. Размер: 4096 байт
Файл: ./чтени строк из файла.lua Размер: 92 байт
Файл: ./ветвление.lua Размер: 149 байт
Файл: ./213.txt Размер: 27 байт
Файл: ./. Размер: 4096 байт
Файл: ./file1 Размер: 27 байт
Файл: ./строки.lua Размер: 229 байт
Файл: ./local-var.lua Размер: 169 байт
Файл: ./symlink.lua Размер: 228 байт
Файл: ./sss Размер: 4096 байт

Что-то вообще не вкуриваю в чем тут прикол, будьте добры, кто-нибудь, ткните меня носом, а то по ходу совсем тупенький уже стал.

#304719

Это похоже на баг модуля, пересобранный из git-a ведет себя как положено.

И для создания симв. ссылки вызывать надо так:

text

lfs.link('file1', 'file2', true)

lfs.link('file1', 'file2', 1)

#304741
"Newton" написал:
Это похоже на баг модуля, пересобранный из git-a ведет себя как положено.

Да, так и оказалось. Собрал lfs из git и все стало работать как положено. Спасибо.
Странно, что с lfs из магеевской репы не пашет, видать криво собрано было.

Войдите или зарегистрируйтесь, чтобы ответить.