명령줄을 사용하여 파일을 자르는 방법은 무엇입니까?

명령줄을 사용하여 파일을 자르는 방법은 무엇입니까?

다음 Python 코드에 해당하는 콘솔은 무엇입니까?

target = file("disk", "w")    # create a file
target.seek(2*1024*1024*1024) # skip to 2 GB
target.write("\0")
target.close()

어쩌면 dd 주문일까요? 가상화 등의 목적으로 겉보기 크기가 2GB인 파일을 만드는 것이 아이디어입니다.

kvm disk -cd whatever.iso #Only allocate space as necessary

답변1

다음 명령을 사용하여 스파스 파일을 생성할 수 있습니다 dd.

dd of=file bs=1 seek=2G count=0
$ du file
0       disk
$ du --apparent-size file
2097152 disk

답변2

일반적으로 말하면 ;을 사용 dd하지만 KVM 가상화를 사용하는 경우 다음을 사용하는 것이 좋습니다 qemu-img.

qemu-img create -f raw disk 2G

ddChris Down의 답변에 있는 명령과 동일한 작업을 수행합니다.

fallocate어떤 명령을 사용하든 가상화 내에서 사용하려면 조각화를 방지하고 성능을 향상시키기 위해 사전 할당된 블록을 사용하는 것이 좋습니다 .

fallocate -l 2G disk

그러나 모든 플랫폼과 파일 시스템에서 사용할 수 있는 것은 아닙니다. 이는 0을 쓰지 않고 파일을 확장해야 할 때마다 요청 시 수행하는 대신 파일에 블록을 할당할 뿐입니다.

답변3

GNU truncate명령도 참조하세요:

truncate -s 2G some-file

관련 정보