加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

对比两个目录中的文件改动

发布时间:2020-12-17 04:07:47 所属栏目:百科 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 #!/usr/bin/rubyrequire 'set'def rdiff (src_path,dst_path) if (File.exist?(src_path)) then path = src_path else path = dst_path end if (File.

以下代码由PHP站长网 52php.cn收集自互联网

现在PHP站长网小编把它分享给大家,仅供参考

#!/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}nn")
    end
  else
    print("---------- DIFF ----------nOnly File: #{path} existnn")
  end
end

if (ARGV.size != 2) then
  print "n*** Directory diff tool.n      by suf.fnstn"
  print "*** Please run as root.nn"
  print "Make sure only 2 args set.n"
  print "usage: rdif DIR1 DIR2nn"
  exit -1
end

rdiff(ARGV[0],ARGV[1])

以上内容由PHP站长网【52php.cn】收集整理供大家参考研究

如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读