Delegates (built-in):
Строка в выводе identify --version
говорит о том, что во время компиляции что-то пошло не так; Я ожидаю, что результат будет больше соответствовать пакетной версии ImageMagick в Debian :
Delegates (built-in): bzlib djvu fftw fontconfig freetype heic jbig jng jp2 jpeg lcms lqr ltdl lzma openexr pangocairo png tiff webp wmf x xml zlib
Если вы не возражаете против более старой версии ImageMagick, 6.9.10, а не 7.0.8, вам, вероятно, будет проще использовать вместо нее пакеты Debian:
sudo apt install imagemagick
Когда создается копия файла, копия точно совпадает с оригиналом (при условии, что во время копирования не было ошибок ). Это верно независимо от того, копируется ли файл в другое место на том же устройстве или на другое устройство.
Копия может иметь другое имя файла, другую отметку времени или другие разрешения, но содержимое остается идентичным.
Это можно проверить, запустив какой-либо алгоритм контрольной суммы или хэширования, (например.md5sum
)на оригинале и копии.
Например:
$ cp original /tmp/thecopy
$ md5sum original /tmp/thecopy
93d9d61139ff5f1287764f1c1994cbe3 original
93d9d61139ff5f1287764f1c1994cbe3 /tmp/thecopy
Оба файла имеют одинаковую сумму md5sum. original
хранился на NVME. /tmp/
— это виртуальный диск.
Технически два разных файла могут иметь один и тот же md5sum
. Вероятность того, что это произойдет, крайне мала. md5sum
в основном «достаточно хорош» для многих простых целей, но большинство людей используют и рекомендуют более сильные методы хеширования в наши дни, чтобы еще больше снизить вероятность. Вот что sha512sum
говорит о той же -принадлежности файлов.
$ sha512sum original /tmp/thecopy
5ba61d6f2a883c3afebc949b0f0d0a1c020498a1052771de98e6e1bbb42d438a0a53f49f381a2e1311c1bdf82a0cea9de646fc03c529fcb6fca0ab6476badf35 original
5ba61d6f2a883c3afebc949b0f0d0a1c020498a1052771de98e6e1bbb42d438a0a53f49f381a2e1311c1bdf82a0cea9de646fc03c529fcb6fca0ab6476badf35 /tmp/thecopy
снова идентично.
What is the recommendation for copying, and will my files stay the same?
cp -a
скопирует данные, но не скопирует время создания, и вы можете потерять последнее время доступа. Если ваша исходная система использует контекст SeLinux, cp другой системы, которая не знает о SeLinux, не будет его копировать.
Что касается crtime, см. Копирование или восстановление crtime для файлов/каталогов в файловой системе ext4fs
Наконец, выполнение md5sum
сразу после копирования, особенно для небольших файлов, не нецелесообразно, так как файлы в то время физически не могли быть сброшены в хранилище, и вместо этого ядро будет работать с грязными буферами, которые хранится в оперативной памяти.
Чтобы быть уверенным, что вы скопировали все точно, вам нужно:
sha256sum
надежнее и быстрее , чем md5sum)echo 3 | sudo tee /proc/sys/vm/drop_caches
В качестве альтернативы для файловых систем ext2/ext3/ext4 вы можете использовать e2image
, который копирует все, (все метки времени, включая время crtime и время последнего доступа ), кроме свободного места. Я обычно использую его для копирования разделов.
Для NTFS я использовал ntfsclone
несколько раз -это быстро и надежно.
Я полагаю, что для других файловых систем существуют аналогичные утилиты, но на своих устройствах я использую только ext4 и NTFS.