Обзор
Команда sum вычисляет контрольную сумму (checksum) и количество блоков (block) для указанного файла и выводит их в стандартный вывод. Эти значения могут использоваться для быстрой проверки того, изменилось ли содержимое файла. По умолчанию расчет производится с использованием блоков по 512 байт в режиме совместимости с BSD.
Основные характеристики
- Расчет 16-битной контрольной суммы файла
- Расчет количества блоков файла (по умолчанию 512 байт или 1 КБ)
- Простая проверка целостности файла и изменений
- Поддержка режимов совместимости с BSD и System V
Основные опции
Команда sum предоставляет несколько опций для изменения способа расчета контрольной суммы.
Режим контрольной суммы
Сгенерированная команда:
Комбинируйте команды.
Описание:
`sum` Запускает команду.
Комбинируйте эти опции, чтобы виртуально выполнять команды с помощью ИИ.
Примеры использования
Узнайте, как использовать команду sum для расчета контрольной суммы и количества блоков файла различными способами.
Расчет базовой контрольной суммы (режим BSD)
echo 'Hello World' > testfile.txt
sum testfile.txt
Рассчитывает базовую (BSD) контрольную сумму и количество блоков файла. (Создайте testfile.txt и выполните команду)
Расчет контрольной суммы в режиме System V
sum -s testfile.txt
Рассчитывает контрольную сумму и количество блоков файла в режиме совместимости с System V.
Расчет контрольной суммы для нескольких файлов
echo 'Another file' > anotherfile.txt
sum testfile.txt anotherfile.txt
Одновременно рассчитывает контрольные суммы для нескольких файлов.
Расчет контрольной суммы из стандартного ввода
echo 'Data from stdin' | sum
Рассчитывает контрольную сумму данных, передаваемых через конвейер в стандартный ввод.
Советы и предостережения
Команда sum подходит для простых задач, но для современных проверок целостности файлов рекомендуется использовать более мощные инструменты.
Предупреждение о безопасности
16-битная контрольная сумма, генерируемая sum, имеет высокую вероятность коллизий. Это означает, что два файла с разным содержимым могут иметь одинаковую контрольную сумму. Поэтому она не подходит для проверки целостности важных данных.
- Низкая безопасность: 16-битная контрольная сумма уязвима к коллизиям, что затрудняет обнаружение злонамеренных изменений.
- Ограниченное применение: В основном используется для некритичных задач, таких как быстрая проверка изменений файлов во время разработки.
Альтернативные команды
Для более надежной и безопасной проверки целостности файлов рекомендуется использовать следующие команды:
- md5sum: Вычисляет хэш MD5 (32-значное шестнадцатеричное число).
- sha1sum: Вычисляет хэш SHA-1 (40-значное шестнадцатеричное число).
- sha256sum: Вычисляет хэш SHA-256 (64-значное шестнадцатеричное число).
- cksum: Вычисляет контрольную сумму CRC32. Более надежна, чем sum, но менее надежна, чем семейство md5/sha.
Понимание размера блока
Количество блоков в команде sum — это размер файла, деленный на размер блока. Режим BSD использует 512 байт, а режим System V — 1024 байта (1 КБ).
- Блок BSD: 512 байт (по умолчанию)
- Блок System V: 1024 байта (1 КБ)