가끔 파일을 특정 용량 단위로 분할 압축을 해야할 때가 있다.
예를 들어..
상황 : 5gb 크기의 파일이 있고 이걸 usb에 담아 linux가 설치된 서버에 옮겨야된다.
제한 : usb 파일 시스템이 FAT32 이고, FAT32는 4GB 이상은 인식 못한다.
해결책1 : usb를 4GB 이상 인식할 수 있는 파일시스템(NTFS 방식)으로 포멧한다.
해결책2 : 다른 파일시스템을 쓰고 싶지 않다면 파일을 4GB보다 작은 단위로 포멧한다.이용할 운영체제가 만약 FAT32만 지원하거나..등등의 이유로..
분할 압축하기 명령어
tar를 이용해서 압축한다.
기본 명령어는 다음과 같다
$ tar -zcvf [filename.tar.gz] [foldername:압축대상]
#예를 들어 파일 1.md, 2.md, 3.md, 4.md 4개를 압축해서 test.tar.gz 라는 압축파일을 만들고 싶다면, 아래처럼 쓰면된다.
$ tar -zcvf test.tar.gz 1.md 2.md 3.md 4.md
#1.md 파일 하나만 압축하고 싶으면 1.md까지만 쓰면 된다.
#.tar.gz 가 아닌 .tar 파일을 만들고 싶으면 -zcvf 대신 -cvf 만 입력하면 된다.
#.tar.gz가 .tar 보다 압축률이 높아서 주로 -zcvf 옵션을 쓴다.
분할 압축하기 명령어는 다음과 같다.
$ tar -zcvf - [압축할 대상 파일] | split -b 2048m - test.tar.gz
#1.md란 파일을 test.tar.gz로 분할압축하고 압축파일의 단위는 2048메가바이트(2GB)로 하고 싶다면
$ tar -zcvf - 1.md | split -b 2048m - test.tar.gz
파일이 5GB쯤 된다면 파일이 세개 생길거고 파일이름은 test.tar.gzaa, test.tar.gzab, test.tar.gzac 이런식이다.
분할 압축파일 압축해제하기
역시 tar 명령어를 이용한다.
압축풀기 기본은 다음과 같다.
$ tar -zxvf test.tar.gz
# .tar.gz 파일이 아닌 .tar 파일이라면(-cvf 옵션으로 압축했다면) -zxvf 대신 -xvf 옵션을 쓰면된다.
위 분할 압축하기 예제에서 test.tar.gzaa, test.tar.gzab, test.tar.gzac 분할 압축 파일 해제는 다음과 같다.
$ cat test.tar.gz* | tar zxvf -
0 댓글