Meld: como mostrar o tamanho do arquivo em bytes

2

Ao comparar diretórios com o Meld, ele mostrará a coluna Tamanho em um formato "legível por humanos", ou seja, 4.1 kB . Como faço para o Meld me mostrar o número exato de bytes, ou seja, 41203 bytes ?

Estou comparando dois diretórios onde, em alguns dos casos, os arquivos à esquerda têm 2 ou 3 bytes a mais do que os arquivos à direita, enquanto o restante de seu conteúdo é o mesmo. Existem também outros tipos de diferenças em outros arquivos, mas o tamanho do arquivo é muito mais diferente, então eles são fáceis de detectar (e ignorar). Eu só quero abrir os arquivos que são apenas alguns bytes diferentes, para verificá-los. Eu não quero abrir arquivos que são, por exemplo, mais de 20 bytes diferentes, eu não me importo com isso. Mas o formato "legível por humanos" cria muito trabalho extra para mim.

    
por Amedee Van Gasse 02.02.2018 / 10:12

1 resposta

0

Acho que sua melhor opção é usar uma ferramenta diferente para identificar pequenas diferenças de tamanho. É relativamente fácil escrever um script de shell nessa extensão:

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

find "$dir1" -type f -printf '%s\t%p
bash size-diff.sh DIR1 DIR2 [SIZE-LIMIT] [DIFF-TOOL]
' | 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

Uso:

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

find "$dir1" -type f -printf '%s\t%p
bash size-diff.sh DIR1 DIR2 [SIZE-LIMIT] [DIFF-TOOL]
' | 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
    
por David Foerster 02.02.2018 / 19:07