
예를 들어 다음과 같이 할 수 있나요?
cat /dev/sda1 > /dev/sda2
dd를 사용하는 대신, 그렇지 않다면 왜 이것이 작동하지 않습니까?
답변1
원칙적으로 둘 중 하나를 사용할 수 있습니다. 몇 가지 중요한 차이점이 있지만 여기에는 적용되는 차이점이 없습니다.
리디렉션을 사용하면
>
대상 파일이 열리고 잘립니다. 그래야만 기록됩니다. 그러나 이는 블록 장치에는 적용되지 않습니다. 고정된 크기를 가지므로 "잘림"은 아무 작업도 수행하지 않습니다.cat
첫 번째 것만 복사하라고 쉽게 말할 수는 없습니다 .N바이트 또는 건너뛰기/탐색.이것이dd
유용한 것입니다.cat
블록 크기를 지정할 수 없습니다. 블록 크기가 사용 중인 파일 시스템에 의해 가려지는 오늘날에는 문제가 되지 않지만, 특정 블록 크기(테이프)를 사용하여 장치를 읽는 위치에 차이를 만드는 데 사용되었습니다.하드디스크의 경우,
cat
조금 더 빠를 수도 있습니다dd
( 속도를 늦추는 기본값은 말할 것도 없고 잘 선택된 블록 크기를 사용하는 것보다 더 좋습니다 .)