운영체제/Linux

[명령어] split 사용방법. '하나의 파일을 여러 개의 작은 파일로 분리해보자'

ahgle 2022. 11. 16. 15:44
728x90
반응형

오늘은 split 명령어를 사용해보고 활용 방법에 대해 알아보겠다

 

먼저, split의 사전적의미부터 확인해보자. 의미를 알면 명령어 사용이 더욱 익숙해진다.

 

split : 나뉘다, 쪼개지다

 

split 의 뜻 그대로, split 명령어는 파일을 나누고 쪼개는 역할을 한다.

 

[사용 방법]

#split [option] file [file_name]

 

[주요 옵션]

-b : 파일을 주어진  바이트 크기로 분리한다. 사이즈의 단위로 k, m을 붙여서 kilobytes, megabytes 단위의 분리도 가능하다.

-C : 파일의 행을 주어진 사이즈에 최대한 맞춰서 분리한다.

-l 행수 : 파일을 주어진 행 수 단위로 분리한다.

 

[사용 예시]

이름 지정없이 나눌 라인의 단위만 지정해서 쪼개보기

#split -l 30 /etc/passwd

→/etc/passwd 파일을 한 파일에 30라인씩 잘라서 파일을 생성한다. 별도로 지정한 이름이 없으므로, xaa,xab,xac 등으로 생성된다.

(🤷‍♂️TIP : passwd는 시스템에 등록된 사용자의 정보들이 담겨있는 파일이다. 이 파일을 이용하여 사용자의 계정과 인증을 관리, 파일 이름이 passwd라서 이 곳의 사용자의 패스워드도 있을 것 같지만 패스워드는 /etc/shadow  라는 파일에 있다)

 

아래는 실제로 명령어를 수행한 결과이다. /etc/passwd 파일의 내용이 30줄 이상이다 보니, xaa, xab 두 개의 파일로 나뉘었다.

wc -l 명령어로 행 수를 확인해보면, passwd 파일의 행 수가 42줄인 것을 알 수 있다.

두 개로 나뉜 첫 번째 파일이 정말로 30줄까지 잘린 지 확인해보자.

vi  편집기를 이용해 파일을 열어보았다.
실제로 30줄까지 끊겨있다.

 

파일을 나눌 때 이름을 지정해서 쪼개보기

이번엔 이름을 지정해서 쪼개보자.

ex) split -20 /etc/passwd test

→/etc/passwd 파일을 한 파일에 20라인씩 잘라서 생성한다. test라는 이름을 부여하였으므로, 생성되는 파일은 testaa, testab,testac 등으로 생성된다.

총 42줄이므로 20 / 20 / 2줄씩 총 세 개의 파일로 쪼개져 내용이 담겨있다.

 

파일을 나눌 때 이름과 사이즈를 지정해서 쪼개보기

이번엔 이름, 사이즈를 모두 지정해서 쪼개보자.

ex)split -b 1M  test

 

10M 크기의 임의의 테스트파일을 test라는 이름을 지정하여 1M 단위로 쪼개보았다.

크기가 10M인 테스트 파일
1M 크기 단위로, test라는 이름을 붙여서 쪼개보았다.
testaa, testab, testac ...  1M 단위로 파일이 쪼개졌다.

 

마지막으로, 분할한 파일을 복원시켜보자! 다시 합쳐보기~

ex)cat testa* > testfile2

testa로 시작하는 모든 파일명을 testfile2라는 이름으로 합친다.

(이 때 기존 파일들이 없어지는 것은 아니며, 각 파일은 합친 파일이 신규로 생성된다)

 

tesfile2 라는 파일이 생성됨. 기존 파일들이 없어지진 않았다.

 

오늘은 이렇게 split 명령어를 이용해 파일을 쪼개고, cat 명령어로 합치는 방법까지 알아보았다.

 

The record makes me strong.

728x90