Например, я могу сделать:
cat /dev/sda1 > /dev/sda2
вместо использования dd, и если нет, то почему это не сработает?
В принципе, вы можете использовать либо. Есть несколько важных отличий, но ни одно из них здесь не применимо.
Когда вы используете >
перенаправление, целевой файл открывается и усекается. Только тогда это написано. Однако это не относится к блочным устройствам - они имеют фиксированный размер, поэтому «усечение» им ничего не дает.
С помощью cat
вы не можете легко сказать, что нужно копировать только первые n байтов или пропускать / искать. Это то, для чего полезен dd
.
cat
не позволяет указать размер блока. Это не имеет значения сегодня, когда размеры блоков маскируются используемыми файловыми системами, но это имело значение для различий, где устройства будут считываться с определенными размерами блоков (лентами).
Для жестких дисков cat
может быть немного быстрее (даже лучше, чем dd
с правильно выбранным размером блока, не говоря уже о значении по умолчанию, которое замедляет работу).