Ruby 最强大的 which whereis 命令

sevk · 2012年03月28日 · 最后由 sevk 回复于 2012年03月29日 · 3648 次阅读

#!/usr/bin/env ruby
# 比如: which ruby
# 
name = ARGV[0] 
a = ENV['PATH'].split(/;/) | $:

inc = ENV['INCLUDE']
if inc
  inc = inc.split(/;/)
  a << inc.map{|x| x + '\\sys'}
  a << inc.map{|x| x + '\\gl'}
  a = a | inc
end

lib = ENV['LIB'].split(/;/) rescue []
a =a | lib

a.flatten!
a.map{|x| x.downcase! }
a.uniq!

a.each{|path|
   path.gsub!(/\\/,'/')
   Dir[File.join(path, '*'+name+'*')].each{|x|
      print "#{x}\n"
   }
}



真强大,比 everything 还牛。

这是非索引的 locate 么

#2 楼 @reus

这个只查找 $: 和 path 的。 locate 默认查找所有目录。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号