Почему CRC32 говорит, что некоторые из моих файлов «плохо»?

По крайней мере, в Ristretto 0.6.3 этому есть предпочтение. В меню выберите «Правка» → «Настройки», перейдите на вкладку «Поведение» и снимите флажок «Развернуть окно при запуске при открытии изображения».Ристретто запоминает размер своего последнего окна, поэтому, если оно начало разворачиваться при последнем открытии, в следующий раз оно может занять весь экран (но не разворачиваться); измените размер окна, и когда вы снова запустите его, оно должно остаться с этим меньшим размером.

Настройка хранится в ~ / .config / xfce4 / xfconf / xfce-perchannel-xml / ristretto.xml . Вы можете использовать этот файл, чтобы установить желаемый размер окна.

<?xml version="1.0" encoding="UTF-8"?>

<channel name="ristretto" version="1.0">
  <property name="window" type="empty">
    <property name="height" type="uint" value="600"/>
    <property name="width" type="uint" value="400"/>
    <property name="maximize-on-startup" type="bool" value="false"/>
  </property>
</channel>
2
12.11.2018, 03:25
1 ответ

Исполняемый файл crc32, который вы используете, представляет собой сценарий Perl, распространяемый вместе с модулем Archive::ZipPerl.

Perl-скрипт crc32довольно короткий, и в нем есть эта маленькая деталь:

if ( $file =~ /[^[:xdigit:]]([[:xdigit:]]{8})[^[:xdigit:]]/ ) {
    my $filenameCrc = $1;
    if ( lc($filenameCrc) eq lc($fileCrc) ) {
        print("\tOK")
    } else {
        print("\tBAD $fileCrc != $filenameCrc");
    }
}

То есть, если путь к файлу содержит восемь последовательных шестнадцатеричных цифр, которым предшествует и за которыми следует хотя бы одна не -шестнадцатеричная цифра, это шестнадцатеричное число сравнивается с контрольная сумма CRC32 файла.

В вашем случае вы используете crc32на ./9836Feeding_the_dog_.mpeg. Этот путь содержит несколько не-шестнадцатеричных цифр (./), за которыми следуют ровно восемь шестнадцатеричных цифр (9836Feed), а затем снова что-то не-шестнадцатеричное. 9836Feedне является контрольной суммой файла CRC32, поэтому он жалуется.

Пример, который запускает это поведение, которое является "не ПЛОХИМ":

$ cat 261dafe6_file
12345
$ crc32./261dafe6_file
261dafe6        OK

Повторное создание теста и провоцирование ответа «ПЛОХО» путем добавления ./перед путем к файлу:

$ echo 12345 >9836Feeding_the_dog_.mpeg
$ crc32 9836Feeding_the_dog_.mpeg
261dafe6

$ crc32./9836Feeding_the_dog_.mpeg
261dafe6        BAD 261dafe6 != 9836Feed

Поскольку исполняемый файл crc32недокументирован, очевидно, несколько причудлив и мало используется (Я не знал об этом и должен был найти его, но это, возможно, мало о чем говорит )Я бы предложил использовать какой-нибудь другой инструмент для подсчета контрольных сумм файлов. Инструмент md5sumот GNU coreutils широко используется, и в системах BSD вы можете использовать md5. Существуют также утилиты для вычисления более надежных хэшей (SHA1, SHA256 и SHA512, а другие поддерживаются легкодоступными утилитами ).


(Под «не -шестнадцатеричной цифрой» я подразумеваю «что-то, что не является шестнадцатеричной цифрой»)

3
27.01.2020, 22:02

Теги

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