Ruby China

Ruby 最强大的 which whereis 命令

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

#!/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 默认查找所有目录。

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

AltStyle によって変換されたページ (->オリジナル) /