Meld: как отобразить размер файла в байтах

При сравнении каталогов с Meld будет показан столбец «Размер» в «удобочитаемом» формате, т.е. 4,1 кБ . Как сделать так, чтобы Мелд показал мне точное число байтов, т.е. 41203 байта ?

Я сравниваю две директории, где в некоторых случаях файлы слева имеют на 2 или 3 байта больше, чем файлы справа, а остальное их содержимое одинаково. Существуют и другие типы различий в других файлах, но тогда их размер значительно отличается, поэтому их легко обнаружить (и игнорировать). Я только хочу открыть файлы, которые отличаются только на несколько байтов, чтобы проверить их. Я не хочу открывать файлы, например, размером более 20 байтов, мне все равно. Но «читаемый человеком» формат создает для меня много дополнительной работы.

2
задан 2 February 2018 в 20:42

1 ответ

Я думаю, что Ваш наилучший вариант состоит в том, чтобы использовать другой инструмент для идентификации небольшого размера различий. Относительно легко записать сценарий оболочки до той степени:

#!/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]
0
ответ дан 2 December 2019 в 08:06

Другие вопросы по тегам:

Похожие вопросы: