| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | ||
| 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| 13 | 14 | 15 | 16 | 17 | 18 | 19 |
| 20 | 21 | 22 | 23 | 24 | 25 | 26 |
| 27 | 28 | 29 | 30 |
Tags
- 쉘스크립트
- linux
- UNIX
- 리눅스
- 명령어
- JavaScript
- 시스템관리
- 파일시스템
- Unix명령어
- shell
- linuxcommand
- php
- bash
- tcsh
- Solaris
- environment
- coreutils
- 유닉스
- 터미널
- cups
- 유닉스명령어
- PackageManagement
- js
- sysadmin
- terminal
- 리눅스명령어
- 정규표현식
- UnixCommand
- 사용자관리
- 자바스크립트
Archives
- Today
- Total
ioerror
split 사용법 및 옵션 - 대용량 파일을 지정한 크기나 라인 수 단위로 분할하는 명령 본문
반응형

split - Split a file into pieces
대용량 텍스트 파일이나 바이너리 파일을 지정한 줄(line) 수, 파일 크기(bytes), 또는 특정 기준 단위로 여러 개의 작은 파일로 나누어 저장하는 유닉스 및 리눅스 기본 명령어이다. 대용량 로그 분석, 네트워크 전송 용량 제한 처리, 디스크 분할 저장 등 대용량 데이터 다루기 작업 시 주로 사용된다. 분할된 파일은 기본적으로 prefixaa, prefixab 형태의 순차적 접미사가 붙어 생성된다.
1. split 용도
- 몇 GB가 넘는 대용량 로그 파일을 일정 크기나 라인 수로 잘라 텍스트 에디터에서 원활하게 열어보거나 분석할 때 사용된다.
- 네트워크 전송 제한이나 이메일 첨부 용량 제한이 있는 환경에서 대용량 압축 파일을 나누어 전송한 뒤 cat 명령으로 재합성하는 상황에 활용된다.
2. split 서식
split [OPTION]... [INPUT [PREFIX]]
3. split 옵션
| 옵션 | 설명 | 사용가능 OS 및 쉘 |
| -l, --lines=NUMBER | 지정한 라인(줄) 수 단위로 파일을 분할한다 (기본값: 1000줄). | 모든 유닉스/리눅스 |
| -b, --bytes=SIZE | 지정한 바이트(K, M, G 등) 크기 단위로 파일을 분할한다. | 모든 유닉스/리눅스 |
| -C, --line-bytes=SIZE | 최대 SIZE 바이트를 넘지 않도록 행(line) 단위를 유지하며 분할한다. | 모든 유닉스/리눅스 |
| -n, --number=CHUNKS | 파일을 지정한 조각(CHUNK) 개수로 균등 분할한다. | GNU Coreutils Linux |
| -d, --numeric-suffixes[=FROM] | 생성되는 분할 파일의 접미사로 알파벳 대신 숫자를 사용한다. | GNU Coreutils Linux FreeBSD |
| -a, --suffix-length=N | 생성되는 접미사의 길이를 N자리로 지정한다 (기본값: 2자리). | 모든 유닉스/리눅스 |
| --additional-suffix=SUFFIX | 분할 파일 이름 뒤에 특정 확장자(e.g. .txt, .part)를 추가한다. | GNU Coreutils Linux |
| -u, --unbuffered | 입력 데이터를 버퍼링 없이 즉시 분할 출력에 복사한다 (-n r/...와 함께 사용). | GNU Coreutils Linux |
| --verbose | 분할 파일이 생성될 때마다 해당 파일 이름을 화면에 출력한다. | GNU Coreutils Linux |
# 50MB 단위로 파일을 숫자인덱스 및 .part 확장자를 붙여 분할
split -b 50M -d --additional-suffix=.part largefile.zip part_
ls -l part_*
# -rw-r--r-- 1 user group 52428800 Jul 29 14:00 part_00.part
# -rw-r--r-- 1 user group 52428800 Jul 29 14:00 part_01.part
# -rw-r--r-- 1 user group 12582912 Jul 29 14:00 part_02.part
# 10,000줄 단위로 access.log 파일을 분할
split -l 10000 access.log log_chunk_
# 분할된 파일들을 다시 하나로 원복합성
cat part_*.part > restored_file.zip
- part_00.part, part_01.part: -b 50M 옵션에 의해 정확히 50메가바이트 크기로 분할 생성된 첫 번째와 두 번째 파일이다.
- part_02.part: 50메가바이트 채우고 남은 나머지 데이터(약 12MB)가 들어있는 마지막 분할 파일이다.
4. split 특이사항(유의사항)
- -b 옵션은 바이트 단위로 자르기 때문에 텍스트 파일 분할 시 중간 행(line)이 분단되어 깨질 수 있다. 텍스트 파일의 행을 유지하면서 특정 크기로 자르려면 -C 옵션을 사용해야 한다.
- 분할 후 원래 파일로 복원하려면 단순히 cat part_* > original_file 구문을 실행하여 순서대로 합쳐주면 되며, 체크섬(md5sum, sha256sum)을 검증하는 것이 안전하다.
- 기본 접미사 길이가 2자리(-a 2)일 경우 생성 가능한 알파벳 조합이 26x26 = 676개로 제한되므로, 조각 수가 백 단위 이상으로 매우 많아질 경우 -a 4 또는 -d 옵션을 지정하여 접미사 자릿수를 미리 늘려주는 것이 권장된다.
관련 명령어들
- cat: 여러 파일의 내용을 하나로 연결하거나 분할된 파일을 다시 원복 합성한다.
- csplit: 정규식 패턴이나 특정 문자열을 기준으로 파일의 특정 단락을 구분하여 분할한다.
- tar: 대용량 디렉터리나 파일들을 하나로 묶거나 압축을 수행한다.
- md5sum: 파일 분할 전후의 무결성을 검증하기 위해 해시 값을 추출한다.
https://ioerror.tistory.com/entry/UNIX-Linux-Command-Reference
UNIX & Linux Command Reference
유닉스 / 리눅스 명령어 표유닉스와 리눅스 환경에서 자주 사용되는 필수 명령어들을 완벽하게 정리한다. 서버 관리, 프로그래밍, 일상적인 시스템 운영 등 어떤 목적이든 터미널 환경을 능숙하
ioerror.tistory.com
반응형
'OS' 카테고리의 다른 글
| slogin 사용법 및 옵션 - 원격 호스트에 암호화된 터미널 세션으로 안전하게 접속하는 명령 (0) | 2026.07.30 |
|---|---|
| ssh 사용법 및 옵션 - 원격 호스트에 암호화된 터미널 세션으로 안전하게 접속하는 명령 (0) | 2026.07.30 |
| source 사용법 및 옵션 - 현재 셸 환경에서 스크립트 파일을 직접 읽어 실행하는 명령 (0) | 2026.07.30 |
| sort 사용법 및 옵션 - 텍스트 파일의 행 단위 데이터를 정렬하고 중복을 제거하는 명령 (1) | 2026.07.29 |
| sleep 사용법 및 옵션 - 지정한 시간 동안 프로세스 실행을 대기(지연)시키는 명령 (0) | 2026.07.29 |
Comments