计算两个文件之间的%差异和文件大小

chz*_*chz 1 linux shell shell-script bash-scripting

我们有两个 zip 文件,想对它们进行比较。

我们还对计算它们与文件大小之间的百分比差异感兴趣。有没有一个工具可以快速做到这一点?

Pin*_*ino 5

您可以尝试像这样的 bash 脚本:

#!/bin/bash
SIZE1=$(stat -f "%z" "$1")
SIZE2=$(stat -f "%z" "$2")
PERC=$(bc <<< "scale=2; ($SIZE2 - $SIZE1)/$SIZE1 * 100")
echo "$PERC %"
Run Code Online (Sandbox Code Playgroud)

然后,您可以通过传递两个文件作为参数来调用该脚本。我使用该命令stat -f "%z" "$1"来获取文件大小,它适用于 OS X。根据您的 Linux 发行版,您可能需要不同的语法,例如stat -c%s FILENAME, 或 du -b FILENAME。在控制台中尝试,您应该得到字节数作为输出。

请注意,我们需要调用该程序,bc因为 Bash 无法执行浮点运算。

当然,您可以修改脚本来满足您的需求。如果您需要将两个压缩文件与未压缩文件进行比较,您可以添加另一个变量并使用 进行所需的数学运算bc