compress指令并不是总是压缩文件
这篇讲的是作者在使用compress指令压缩一批几十字节的小文本文件时遇到的一个有趣现象:十个文件里有一个压缩失败了,但系统既没报错也没给出任何提示。这个“静默失败”的情况让人困惑,因为按常理,任何指令执行都应该有明确的反馈。 作者深入排查后发现,问题的根源在于compress的默认压缩策略。它不会盲目地对每个文件都执行压缩操作,而是会先判断压缩后的文件是否比原文件更小。对于内容过于简单或熵值极低的小文件,压缩可能反而会增大文件体积,此时compress就会直接跳过压缩,保持文件原样——且这个过程是“静默”的,不产生任何日志或错误信息。 这其实是一个容易被忽略的实用细节。作者通过这个案例提醒我们,不能想当然地认为所有压缩工具在任何情况下都会“压缩成功”。在编写自动化脚本或处理大量文件时,需要格外注意这类静默行为。事后,可以通过检查文件的时间戳或大小是否变化来确认操作结果,或者改用gzip等会强制覆盖并明确提示的工具。这个小坑踩得很有价值,它揭示了工具设计哲学与用户直觉之间的微妙差异。