以下脚本按预期创建符号链接,但永远无法找到原始文件。有人可以告诉我为什么吗?它们似乎是有效的符号链接,因为它们在OS X中注册为别名,File.symlink?
一旦创建就返回true。
#!/usr/bin/env ruby
case ARGV.first when 'link'
file = ARGV[1]
if !File.exist?(file)
puts "Unfortunately, \"#{file}\" was not found."
exit 0
end
bin = "/usr/local/bin/"
if !File.directory?(bin)
puts "#{bin} does not exist!"
puts "creating #{bin}..."
system "mkdir -p #{bin}"
end
if File.extname(file).empty?
if File.symlink?(bin + file)
puts "Unfortunately, \"#{bin + file}\" already exists."
exit 0
end
name = bin + file
puts "Symlinking #{file} to #{name}..."
File.symlink(file, name)
system "chmod +x #{name}"
else
name = file.split(File.extname(file))
name = bin + name.first
if File.symlink?(name)
puts "Unfortunately, \"#{name}\" already exists."
exit 0
end
puts "Symlinking #{file} to #{name}..."
File.symlink(file, name)
system "chmod +x #{name}"
end
else
puts "try: bin link <file>"
end
脚本以下列方式运行:
ruby script.rb link myfile.rb
答案 0 :(得分:1)
回答我自己的问题,替换
的实例File.symlink(file, name)
带
File.symlink(File.expand_path(file), name)
工作得很好。