리눅스에서 주어진 크기로 파일을 만드는 방법?
테스트 목적으로 (업로드 제한을 테스트하기 위해) 특정 크기의 파일을 생성해야합니다.
Linux에서 특정 크기의 파일을 작성하는 명령은 무엇입니까?
dd if=/dev/zero of=upload_test bs=file_size count=1
어디를 file_size
바이트 단위 테스트 파일의 크기
현대는 더 쉽고 빠릅니다. Linux에서 (하나 선택)
truncate -s 10G foo
fallocate -l 5G bar
그것은 필요가 있음을 언급 할 truncate
파일 시스템에 지원 스파 스 파일 스파 스 파일을 만들 것입니다 fallocate
하지 않습니다. 스파 스 파일은 파일을 구성하는 할당 단위가 실제로 사용될 때까지 할당 되지 않는 파일 입니다. 파일에 대한 메타 데이터는 것입니다 그러나 일부 상당한 공간이 있지만, 가능성이없는 경우 파일의 실제 크기 근처를 차지합니다. 이 유형의 파일에는 장단점이 있으므로 자세한 정보는 스파 스 파일에 대한 리소스를 참조하십시오. 스파 스가 아닌 파일에는 미리 할당 된 블록 (할당 단위)이 있으므로 파일 시스템이 보는 한 공간이 예약됩니다. 또한 fallocate
도 truncate
지정된 값으로 파일의 내용을 설정하지 않습니다 같은 dd
대신 파일의 내용을 할당 fallocate
하거나 truncate
생성하는 동안 상기 할당 유닛에 존재하고이 동작 또는 소망되지 않을 수있는 쓰레기 값일 수있다. 는 dd
그것의 명령 행 옵션으로 지정된 실제로 전체 파일 스트림에 데이터의 값 또는 덩어리를 기록하기 때문에 가장 느린이다.
이 동작은 사용 된 파일 시스템 및 해당 파일 시스템이 표준 또는 사양에 맞는지에 따라 달라질 수 있습니다. 따라서 적절한 방법이 사용되도록 적절한 연구를 수행하는 것이 좋습니다.
Tom의 게시물 을 추적하기 위해 dd를 사용하여 스파 스 파일을 만들 수도 있습니다.
dd if=/dev/zero of=the_file bs=1 count=0 seek=12345
이것은 대부분의 유닉스에서 "구멍"이있는 파일을 생성합니다. 데이터는 실제로 디스크에 기록되지 않거나 0 이외의 것이 기록 될 때까지 공간을 차지하지 않습니다.
OSX (및 Solaris)에서이 mkfile
명령도 사용할 수 있습니다.
mkfile 10g big_file
"big_file"이라는 10GB 파일이 만들어집니다. 이 방법을 여기 에서 찾았 습니다.
이 명령을 사용하십시오 :
dd if = $ INPUT-FILE of = $ OUTPUT-FILE bs = $ BLOCK-SIZE count = $ NUM-BLOCKS
큰 (빈) 파일을 만들려면을 설정하십시오 $INPUT-FILE=/dev/zero
.
파일의 전체 크기는입니다 $BLOCK-SIZE * $NUM-BLOCKS
.
생성 된 새 파일은입니다 $OUTPUT-FILE
.
프로그래밍 방식으로 수행 할 수 있습니다.
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <stdlib.h>
int main() {
int fd = creat("/tmp/foo.txt", 0644);
ftruncate(fd, SIZE_IN_BYTES);
close(fd);
return 0;
}
이 방법은 파일을 메모리에 mmap 하는 데 특히 유용합니다 .
다음 명령을 사용하여 파일의 크기가 올바른지 확인하십시오.
# du -B1 --apparent-size /tmp/foo.txt
조심해:
# du /tmp/foo.txt
파일 시스템에서 지원하는 경우 Sparse 파일 로 할당되므로 0을 인쇄 합니다.
당신은 할 수 있습니다 :
[dsm@localhost:~]$ perl -e 'print "\0" x 100' > filename.ext
100을 원하는 바이트 수로 바꿉니다.
이 답변 중 일부는 /dev/zero
데이터 소스로 사용 하고 있습니다. 테스트 네트워크 업로드 속도가 빠르면 응용 프로그램에서 압축을 수행하는 경우 이것이 최선의 아이디어가 아닐 수 있습니다. 0으로 가득 찬 파일은 실제로 잘 압축 됩니다. 이 명령을 사용하여 파일 생성
dd if=/dev/zero of=upload_test bs=10000 count=1
upload_test
약 200 바이트로 압축 할 수 있습니다. 따라서 10KB 파일을 업로드한다고 생각하지만 실제로는 훨씬 적은 상황에 처할 수 있습니다.
What I suggest is using /dev/urandom
instead of /dev/zero
. I couldn't compress the output of /dev/urandom
very much at all.
dd if=/dev/zero of=my_file.txt count=12345
As shell command:
< /dev/zero head -c 1048576 > output
There are lots of answers, but none explained nicely what else can be done. Looking into man pages for dd, it is possible to better specify the size of a file.
This is going to create /tmp/zero_big_data_file.bin filled with zeros, that has size of 20 megabytes :
dd if=/dev/zero of=/tmp/zero_big_data_file.bin bs=1M count=20
This is going to create /tmp/zero_1000bytes_data_file.bin filled with zeros, that has size of 1000 bytes :
dd if=/dev/zero of=/tmp/zero_1000bytes_data_file.bin bs=1kB count=1
or
dd if=/dev/zero of=/tmp/zero_1000bytes_data_file.bin bs=1000 count=1
- In all examples, bs is block size, and count is number of blocks
- BLOCKS and BYTES may be followed by the following multiplicative suffixes: c =1, w =2, b =512, kB =1000, K =1024, MB =1000*1000, M =1024*1024, xM =M GB =1000*1000*1000, G =1024*1024*1024, and so on for T, P, E, Z, Y.
This will generate 4 MB text file with random characters in current directory and its name "4mb.txt" You can change parameters to generate different sizes and names.
base64 /dev/urandom | head -c 4000000 > 4mb.txt
참고URL : https://stackoverflow.com/questions/139261/how-to-create-a-file-with-a-given-size-in-linux
'IT' 카테고리의 다른 글
클릭 가능한 ImageView와 ImageButton의 차이점 (0) | 2020.06.21 |
---|---|
gitignore 제외 규칙은 실제로 어떻게 작동합니까? (0) | 2020.06.21 |
모든 사용자를 위해 Linux에서 JAVA_HOME을 설정하는 방법 (0) | 2020.06.19 |
파이썬에서 클래스를 어떻게 디자인합니까? (0) | 2020.06.19 |
“ViewController라는 클래스에 대한 정보를 찾을 수 없습니다” (0) | 2020.06.19 |