GNU 코어 유틸리티가 각각 1GB 파일로 분할할 수 있는 파일의 최대 크기는 얼마입니까?

GNU 코어 유틸리티가 각각 1GB 파일로 분할할 수 있는 파일의 최대 크기는 얼마입니까?

내 한계가 무엇인지 알고 싶습니다. 문자 시스템 az가 있고 두 번째 문자를 1씩 증가시킵니다(xay -> xaz -> (본 적은 없지만 가정) xba -> xbb)

답변1

Split(1)은 기본적으로 접미사 길이를 자동으로 확장합니다(특정 접미사 길이를 지정하지 않는 한). 따라서 발생할 수 있는 제한 사항은 파일 시스템의 파일 수, 파일 이름 길이 및 파일 시스템 크기입니다. 기본적으로 분할(1) 제한이 아닌 모든 파일 시스템 제한입니다.

경고, 분할(1)에는 26^2의 제한이 있었지만 v8.16(2012)에서 접미사를 자동으로 확장하여 이를 제거했습니다.

답변2

이는 실제로 파일 시스템에서 지원하는 최대 파일 수 또는 split.

8개의 알파벳 접미사 문자만 있어도 2 64 바이트 보다 큰 입력 파일을 처리할 수 있으므로 접미사 길이는 관련 제한이 아닙니다.

1GB • 26 8
= 2 30 바이트 • 26 8
> 2 30 바이트 • 16 8
= 2 30 바이트 • 2 4•8
= 2 64 바이트

인용하다:split.c, 그들은 필요한 문자 수를 알아내기 위해 알파벳 문자 수로 나누어 루프를 수행합니다.

답변3

예를 들어 100kB 파일을 생성하고 각각 2바이트를 쓰는 방법으로 직접 시도해 볼 수 있습니다.

mkdir try
cd try

dd if=/dev/urandom iflag=fullblock bs=1024 count=100 >random.dat
split -a4 -b2 random.dat

그러면 51200개의 출력 파일이 생성됩니다. 옵션은 참고자료를 참조하세요 xaaaa.xcxtfman split

관련 정보