임의로 큰 "가짜" 파일 만들기

임의로 큰 "가짜" 파일 만들기

/dev/null파일 과 유사하거나 파일이 실제로 존재하지 않는 특수 파일을 만들고 싶지만 /dev/random파일의 겉보기 크기에 실제로 제한을 둘 수 있다는 점을 제외하고는 여전히 파일에서 읽을 수 있습니다.

즉, 특수 파일을 만들고(상한을 500GB로 설정했다고 가정) 파일을 "cat"하면 파일의 500GB가 모두 출력된 다음 중지됩니다. 실제 500GB 파일과 동일하게 작동해야 하지만 공간을 차지하지 않아야 합니다. 파일이 무엇인지는 중요하지 않습니다. 아마도 모두 \0비슷 /dev/null하거나 계속해서 전송되는 작은 문자열 등일 것입니다.

이게 할 수 있는 일인가요? 내가 찾을 수 있는 유일한 것은 매뉴얼 페이지에서 설명하는 내용이지만 mknod그다지 도움이 되지는 않습니다.

답변1

당신은 만들 수 있습니다스파스 파일일부 파일 시스템에서는나타나다특정 크기에 도달하지만 실제로는 그렇게 많은 공간을 사용하지 않습니다.디스크에.

$ dd if=/dev/null of=sparse bs=1024 count=1 seek=524288000
0+0 records in
0+0 records out
0 bytes (0 B) copied, 2.4444e-05 s, 0.0 kB/s
$ ls -l sparse 
-rw-rw-r--. 1 ignacio ignacio 536870912000 May  9 22:25 sparse
$ du -h sparse
0   sparse

답변2

이미 언급한 휴대용 dd/seek 기반 솔루션 외에도 일부 Unix에는 전용 명령이 있습니다.

적어도 안으로솔라리스,맥 OS X그리고에릭스:

mkfile -n 500m sparseFile

HP-UX에서사전 할당된, AIX의 경우 lmktemp. 많은 Linux 배포판에는자르기

답변3

파일을 볼 필요가 없다면 명명된 파이프를 사용할 수 있습니다.

mkfifo my_special_file
yes | head -n 100 > my_special_file&
cat my_special_file

물론 복잡한 스크립트를 포함한 다른 명령을 사용하여 파이프라인에서 데이터를 생성할 수 있습니다.

답변4

truncate 명령을 사용할 수도 있습니다. 예: 다음은 5MB 파일을 생성합니다.

truncate -s 5M 5.dumpfile

관련 정보