dd로 파일에 데이터를 추가하는 방법은 무엇입니까?


19

SSD에 저장된 파일에 새 데이터를 추가하고 싶습니다.

dd if=/dev/shm/test of=/data/sdb/test bs=1G oflag=append

그러나 df -h는 dd 명령이 항상 테스트 파일을 덮어 쓰는 대신 테스트 파일에 새 데이터를 추가 함을 보여줍니다. 나는 또한 시도했다

dd if=/dev/shm/test of=/data/sdb/test bs=1G conv=notrunc

작동하지 않습니다.

답변:


12

는 어때:

 dd if=/dev/shm/test bs=1G >>/data/sdb/test

귀하의 솔루션이 작동합니다. 감사. 그러나 내 솔루션이 작동하지 않는 이유를 알고 있습니까? 맨 페이지를 확인했습니다. 이유를 찾을 수 없습니다. 감사.
도시


1

리눅스 커널 4.1 FALLOC_FL_INSERT_RANGE옵션이 추가되었습니다. 에서 fallocate(2) man 페이지 :

모드에서 FALLOC_FL_INSERT_RANGE 플래그 (Linux 4.1부터 사용 가능)를 지정하면 기존 데이터를 덮어 쓰지 않고 파일 크기 내에 구멍을 삽입하여 파일 공간을 늘립니다. 구멍은 오프셋에서 시작하여 len 바이트 동안 계속됩니다. 파일 내부에 구멍을 삽입하면 오프셋에서 시작하는 파일의 내용이 len 바이트만큼 위쪽으로 (즉, 더 높은 파일 오프셋으로) 이동합니다. 파일 내부에 구멍을 삽입하면 파일 크기가 len 바이트 증가합니다.

그리고 최근에이 옵션 지원 이 다음에 추가 되었습니다 util-linux.

   -i, --insert-range
          Insert a hole of length bytes from offset, shifting existing
          data.

따라서 util-linux버전 2.30이 릴리스되고 Linux 배포판이이 버전으로 업데이트되면 다음을 실행하여 플래시에서 파일 크기를 늘릴 수 있습니다.

fallocate -i -l 1G -o 128M /path/to/file

128M현재 파일 크기는 어디에 있습니까 ?


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.