
例如,我可以這樣做:
cat /dev/sda1 > /dev/sda2
而不是使用 dd ,如果不這樣做,為什麼這不起作用?
答案1
原則上,您可以使用其中任何一個。兩者之間存在一些重要差異,但都不適用於此。
使用
>
重定向時,目標檔案將被開啟並截斷。只有這樣它才會被寫入。然而,這不適用於區塊設備——它們具有固定的大小,因此「截斷」不會對它們執行任何操作。你
cat
不能輕易告訴它只複製第一個n位元組或跳過/查找。這就是dd
有用的。cat
不允許您指定區塊大小。如今,當區塊大小被所使用的檔案系統屏蔽時,這並不重要,但它曾經會在從具有特定區塊大小(磁帶)的裝置中讀取資料時產生影響。對於硬碟來說,
cat
可能會稍微快一些(甚至比dd
精心選擇的區塊大小更好,更不用說預設的會減慢速度)。