1

以下脚本按预期创建符号链接,但永远找不到原始文件。有人能告诉我为什么吗?它们似乎是有效的符号链接,因为它们在 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
4

1 回答 1

1

要回答我自己的问题,替换实例

File.symlink(file, name) 

File.symlink(File.expand_path(file), name) 

完美地工作。

于 2012-06-30T00:38:37.837 回答