清华大佬耗费三个月吐血整理的几百G的资源,免费分享!....>>>
#!/usr/bin/ruby require 'set' def rdiff (src_path, dst_path) if (File.exist?(src_path)) then path = src_path else path = dst_path end if (File.directory?(path)) then if (File.directory?(src_path)) then src_files = `ls #{src_path}`.split() end if(File.directory?(dst_path)) then dst_files = `ls #{dst_path}`.split() end files = Set[] if (src_files != nil) then src_files.each do |f| files.add(f) end end if (dst_files != nil) then dst_files.each do |f| files.add(f) end end files.each do |f| rdiff("#{src_path}/#{f}", "#{dst_path}/#{f}") end elsif (File.file?(src_path) and File.file?(dst_path)) then str = `diff #{src_path} #{dst_path}` if (str.size > 1) then print("---------- DIFF ----------\nSRC: #{src_path}\nDST: #{dst_path}\n#{str}\n\n") end else print("---------- DIFF ----------\nOnly File: #{path} exist\n\n") end end if (ARGV.size != 2) then print "\n*** Directory diff tool.\n by suf.fnst\n" print "*** Please run as root.\n\n" print "Make sure only 2 args set.\n" print "usage: rdif DIR1 DIR2\n\n" exit -1 end rdiff(ARGV[0], ARGV[1])