【问题标题】:Tcl file checksum matchingTcl 文件校验和匹配
【发布时间】:2014-11-24 07:37:53
【问题描述】:

我在我的 tcl/tk 项目中实现了一个功能,其中使用 fcopy 将文件从 Windows 机器传输到 VM。现在的问题是同一个文件被重复复制,这是完全没有必要的。

所以我必须检查目标文件夹中是否已经存在同名文件。如果是,那么在中止复制过程之前,我必须确保文件内容不匹配。我知道校验和可以用于此,但不知道如何在 TCL 中实现校验和匹配。请指导。

【问题讨论】:

    标签: file copy tcl checksum


    【解决方案1】:

    md5 示例

    md5.tcl

    #!/usr/bin/tclsh
    
    package require md5
    
    set fp [open "md5.tcl" r]
    set file_data [read $fp]
    close $fp
    
    set checksum [md5::md5 -hex $file_data]
    puts $checksum
    

    输出:

    64F63E82282789ACB8F9271CBF35E8B5
    

    【讨论】:

      【解决方案2】:

      Tcllib哈希、校验和和加密 部分中具有您(可能)需要的功能。例如checksum

      【讨论】:

      • 我怀疑 md5 或(较慢的)sha1 会更适合这种事情。将它们放在同一个地方。
      【解决方案3】:

      你也可以使用 UNIX 命令

      cksum
      

      TCL as 可以很好的调用这个

      exec cksum <file>
      

      checksum

      【讨论】:

      • 工作正常,但解决了我的一半问题。我必须将 windows 中文件的校验和与 linux vm 中的文件进行比较。两者都应该为同一个文件生成相同的校验和。
      猜你喜欢
      • 2020-07-02
      • 1970-01-01
      • 2014-07-25
      • 1970-01-01
      • 1970-01-01
      • 2014-05-30
      • 1970-01-01
      • 1970-01-01
      • 2011-03-10
      相关资源
      最近更新 更多