Meld:如何以字节为单位显示文件大小

Meld:如何以字节为单位显示文件大小

当使用 Meld 比较目录时,它将以“人类可读”的格式显示大小列,即4.1 kB。如何让 Meld 显示准确的字节数,即41203 bytes

我正在比较两个目录,在某些情况下,左侧的文件比右侧的文件多 2 或 3 个字节,而其余内容相同。其他文件也存在其他类型的差异,但它们的文件大小差异更大,因此很容易发现(并忽略)。我只想打开只有几个字节不同的文件来验证它们。我不想打开例如超过 20 个字节不同的文件,我不关心这些。但“人类可读”格式给我带来了很多额外的工作。

答案1

我认为最好的选择是使用不同的工具来识别小尺寸差异。编写一个 shell 脚本到这个程度相对容易:

#!/bin/bash
set -eu
dir1="${1%/}" dir2="${2%/}"
sizedifflimit="${3:-20}"
difftool="${4:-meld}"

find "$dir1" -type f -printf '%s\t%p\0' |
while read -rd '' size1 file1; do
    file="${file1:$((${#dir1}+1))}"
    file2="$dir2/$file"
    size2="$(stat -c '%s' -- "$file2")"
    sizediff=$(($size1 - $size2))
    if [ "$sizediff" -ne 0 -a "${sizediff#-}" -lt "$sizedifflimit" ]; then
        $difftool -- "$file1" "$file2"
    fi
done

用法:

bash size-diff.sh DIR1 DIR2 [SIZE-LIMIT] [DIFF-TOOL]

相关内容