local fs=require("filesystem") local shell=require("shell") local args=shell.parse(...) if#args==0 then io.write("Usage: ln []\n") return 1 end local target_name=args[1] local target=shell.resolve(target_name) if not fs.exists(target)and not fs.isLink(target)then io.stderr:write("ln: failed to access '"..target_name.."': No such file or directory\n") return 1 end local linkpath if#args>1 then linkpath=shell.resolve(args[2]) else linkpath=fs.concat(shell.getWorkingDirectory(),fs.name(target)) end if fs.isDirectory(linkpath)then linkpath=fs.concat(linkpath,fs.name(target)) end local result,reason=fs.link(target_name,linkpath) if not result then io.stderr:write(reason..'\n') return 1 end