파일을 다른 파일에 쓰는 방법

파일을 다른 파일에 쓰는 방법

다른 파일(크기 1.1KB)을 작성해야 하는 9.0KB(0만 포함) 크기의 빈 파일이 있지만 첫 번째 파일의 크기나 나머지 내용이 손실되어서는 안 됩니다. 따라서 전체 파일이 00000000000000...지금이라면 그 안에 두 번째 파일을 작성하고 0을 변경하지 않고 그대로 두어야 합니다. 나는 dd성공하지 못한 채 파일 크기 조정을 사용해 보았습니다 .

dd if=out/one.img of=out/go.img

내가 어떻게 할 수 있는지 아는 사람 있나요?

답변1

자르지 않고 객체 파일의 시작 부분을 덮어쓰려면 notrunc변환 지시문을 제공하십시오.

$ dd if=out/one.img of=out/go.img conv=notrunc

소스 파일의 데이터를 원하는 경우추가의대상에 대해 다음 지시문을 사용하여 이를 수행할 수 있습니다 seek.

$ dd if=out/one.img of=out/go.img bs=1k seek=9

이는 dd블록 크기가 1kiB이므로 seek쓰기 전에 9kiB가 진행되었음을 나타냅니다.

두 가지 양식을 결합할 수도 있습니다. 예를 들어 재정의하려면두번째1kiB 소스가 있는 파일의 1kiB 청크:

$ dd if=out/one.img of=out/go.img bs=1k seek=9 conv=notrunc

즉, 출력 파일의 처음 1kiB를 건너뛰고 거기에 있는 데이터를 입력 파일의 데이터로 덮어쓴 다음 먼저 자르지 않고 출력을 닫습니다.

답변2

<>자르기를 사용하여 쓰기 전용 모드를 여는 대신 쉘 리디렉션 연산자를 사용하여 읽기-쓰기 모드로 대상 파일을 엽니다 >.

file2위에 작성 하고 싶다고 가정해 보겠습니다 file1.

cat file2 1<> file1

file2그러면 오프셋 file10(처음 부분)이 기록됩니다 .

file2끝에 추가 하려면 연산자를 file1사용하십시오 .>>

cat file2 >> file1

file2어떤 오프셋에도 쓸 수 있습니다 file1.

{ head -c1000 # for 1000 bytes within or
  # head -n 10 # for 10 lines within
  cat file2 >&0
} <> file1 > /dev/null

바이트 오프셋의 경우 ddWarren의 솔루션을 사용하는 것이 더 편리할 수 있습니다.

관련 정보