% 알림 시작 %
split의 카운트 방법이 바뀐 것 같습니다.
예전에는 카운트 횟수에 제한이 없었는데..
지금 살펴보니깐 zz까지 되는군요. --;
덕분에 열심히 짰었던 스크립트가 쓸모 없게 되었군요.
뭐 어차피 그렇게 필요한 스크립트는 아니지만 --;;
% 알림 끝 %
## tar.gz -> tar.bz2 형식으로 하려면 (확장자만 바꾸는 것 아님 --;
우선 하드 공간이 넉넉하면
$ gzip -d some.tar.gz
$ # tar 파일이름을 확인한 후
$ bzip2 some.tar
하드 공간이 부족하면
$ gzip -dc some.tar.gz | bzip2 -f - > some.tar.bz2
저는 이전에 tar.bz2 를 tar.gz 으로 바꾸어야 하는 상황이 있어서 반대로 이용했습니다. bzip2
가 없는 시스템에서 풀어야 했거든요. --;; ## tar + gzip(or bzip2) + split 으로 다중 압축 아카이
브 만들기 (거창하다.. --;
split을 이용한 팁은 이곳에서 찾았습니다.
다시 한 번 간략하게 쓰면
tar + gzip 으로 하고.. 50메가씩 나누고 싶다면...
$ tar -czvf - /lsn | split -b 50m - lsn.tar.gz_
이렇게 하시면
lsn.tar.gz_aa
lsn.tar.gz_ab
lsn.tar.gz_ac
.
.
이런 순으로 파일을 생성시킵니다.
첫번째 파일은 크기가 지나치게 작지 않다면
file 명령어로 확인해보면 gzip된 파일이라고 알려줍니다.
나머젼 data로 나오고요.
그래서 lsn.tar.gz 이라는 텍스트 파일을 만들어서 약간의 정보를 적어두시면 더 도움이 되
리라 생각합니다.(처음 이 파일을 접한 사람을 아리송하겠죠?) 풀려면
$ cat lsn.tar.gz_* | (cd 풀고싶은곳; tar -xzvf - )
문제는 lsn.tar.gz_* 은 lsn.tar.gz_aa lsn.tar.gz_ab ... 이런식으로 확장이 되어 cat에게 넘겨주는데
요. 이 순서가 반드시 본래 파일의 byte order로 되어 있어야 합니다. split에 생성된 파일은
알파벳 순으로 정렬하면 그 순서가 맞습니다. 마지막으로 제가 만든 쉘스크립트 중 가장
긴 길이를 자랑하는(정말 읽기 짜증나는) mtar.sh 입니다. $ mtar.sh -czvf lsn.mtgz /lsn -b 50m 하시
면 자동으로
lsn.mtgz_aa
lsn.mtgz_ab ...
이렇게 생성을 시켜주고
lsn.mtgz 이라는 이름으로
약간의 정보와 함께 자동으로 파일을 풀 수 있도록해주는 쉘랩퍼(스크립트)를 만들어줍니
다. 압축을 풀 때는
$ chmod +x lsn.mtgz
$ cd 풀고싶은곳
$ /lsn.mtgz가있는곳/lsn.mtgz
이렇게 하시면
빠진 파일이 없는지 체크하고, 이상이 없으면 파일을 풉니다.
아직 테스트 중입니다. --;;
만일 쓰시려면 각오하시고 쓰십시오. 적어도 하드 포맷은 안될 것입니다. --;;
테스트 결과 ksh에서도 동작하는 듯 보입니다. --;;
느끼는 건데 쉘스크립트에서는 bash만한 것도 없네요.
<a href="http://www.linuxstudy.pe.kr/~donkey/shelldul/mtar.sh"><b>mtar.sh</b></a>
<b>텍스트로 보기</b>
<a href="http://www.linuxstudy.pe.kr/~donkey/shelldul/mtar.sh.txt"><b>mtar.sh</b></a>
p.s) chmod +x mtar.sh # 필수 --+
--
음.. 모질라로 복귀