【问题标题】:How to compare filesizes on Windows and Linux with ascii?如何将 Windows 和 Linux 上的文件大小与 ascii 进行比较?
【发布时间】:2010-01-29 21:36:41
【问题描述】:

我正在编写一个 Python 脚本,它将把一堆文件上传到一个 FTP 站点。要检查文件是否已更改,我正在比较文件大小。问题是,我上传的文件有 \r\n 行结尾,但通过 FTP(ascii 模式到 Linux 机器)传输会转换为 \n 行结尾。显然我在这个过程中丢失了一堆字节,所以我不能再比较文件大小了。

我不确定在这里进行的最佳方式。在检查文件大小时即时从 \r\n 转换为 \n?以二进制模式上传所有内容?停止比较文件大小?

【问题讨论】:

    标签: windows unix ftp line-endings


    【解决方案1】:

    我不会根据文件大小检查文件是否已更改。由于它是 ascii 文本,因此文件可能已更改,但仍具有完全相同的字节数。

    【讨论】:

      【解决方案2】:

      使用文件大小是个坏主意,除非它们只有在更改时才会增长(但通常情况并非如此,除非它们是日志文件或其他东西)。

      一个选项是跟踪每个文件(也可以上传到 ftp 服务器)的校验和(通常使用 md5sum)。如果校验和与主校验和文件中的内容匹配,则没有任何更改,否则上传更改的文件并更新该文件的 md5sum。

      【讨论】:

      • +1 你的想法是对的,尽管现在绝对不推荐使用 MD5(就此而言,也不再推荐使用 SHA-1)。至少使用 SHA-256。
      • 我认为这取决于。作为一个简单的校验和,CRC 是否足够或太弱值得商榷,而 MD5 和 SHA-1 绝对足够好。对于加密安全的哈希,是的,现在准备至少使用 SHA-2 系列哈希并随着时间的推移对其进行升级。
      猜你喜欢
      • 1970-01-01
      • 2019-04-30
      • 1970-01-01
      • 2011-08-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多