5. shar(쉘 압축) |
1) 경로 : /usr/bin/shar
2) 요약 : 쉘 아카이브를 생성
3) 사용 방법 : shar
4) 추가 설명
shar로 압축된 파일은 #!/bin/sh 헤더 정보와 아카이브를 풀기 위한 쉘 스크립트 명령 모음, 그리고 압축하지 않은 채 묶여 있는 파일의 모음으로 되어 있습니다. 이 파일은 뉴스 그룹 관리자가 원본 파일을 읽고, 정리하고, 삭제하기가 수월합니다. 요즘에도 이 파일 포맷은 인터넷 뉴스 그룹에서 종종 볼 수 있지만 대부분 tar/gzip 명령어로 대체되었습니다.
shar 아카이브는 unshar 명령으로 압축을 해제할 수있습니다.
<shar 명령으로 압축하기>
c 원본 파일을 shar로 압축합니다.
# shar -o [저장할 파일] [원본 파일]
또는
# shar [원본파일] > [저장할 파일]
실제로 아래와 같이 hello.c 원본 파일을 hello.shar 파일로 압축할 수 있습니다.
# sh hello.c > hello.shar
shar 형태의 파일은 쉘 스크립트 형식으로 되어 있습니다.
# cat hello.shar
#!/bin/sh
# This is a shell archive (produced by GNU sharutils 4.2.1).
# To extract the files from this archive, save it to some FILE, remove
# everything before the '!/bin/sh' line above, then type 'sh FILE'.
#
# Made on 2020-03-11 13:26 KST by <chan.localhost>.
# Source directory was '/home/chan'.
#
# Existing files will *no* be overwritten unless '-c' is specified,
... 생략 ...
<shar 명령으로 압축 풀기>
hello.shar 파일의 압축을 해제하려면 unshar 명령어를 사용합니다.
# unshar hello.shar
6. tar(파일 묶기) |
1) 경로 : /bin/tar
2) 요약 : 여러 파일을 묶거나 해제
3) 사용 방법 : tar [옵션] 파일명1 파일명2
4) 옵션
파일명1 : 결과 파일명 지정
파일명2 : 압축이나 묶음으로 만들 대상 파일 지정
-A, --catenate : 아카이브에 tar 파일을 추가
-c, --create : 새로운 아카이브 파일을 생성
-C, --directory DIR : 대상 디렉터리(DIR)를 지정
-d, --diff, --compare : 아카이브와 파일 시스템의 차이를 비교
-f, --file=ARCHIVE : 아카이브 이름(ARCHIVE)을 지정
-j, -l --bzip : bzip2를 이용해 압축
-M, --multi-volume : 멀티 볼륨 아카이브 생성, 해제, 출력
-r, --append : 아카이브의 끝에 파일 추가
-u, --update : 아카이브의 목록 중 기존의 파일에서 업데이트된 파일만 추가
-v, --verbose : 상세한 정보 출력
-w, --interactive : 모든 행동에 사용자의 확인을 요구
-x, --extract, --get : 아카이브에서 파일을 해제
-z --gzip, --unzip : gzip으로 압축. unzip으로 압축 해제
--help : 도움말 출력
--version : 버전 정보 출력
5) 추가 설명
tar 명령어는 다수의 파일이나 디렉터리를 하나의 파일로 묶습니다. 특히 백업으 목적으로 시스템의 파일을 하나의 파일로 묶을 때 유용합니다. gzip이나 bzip2와 같은 파일 압축 명령어와 함께 스면 파일 아카이브를 생성하면서 압축까지 병행할 수 있습니다.
아래와 같이 디렉터리에 파일이 있다고 가정합니다.
# pwd
/home/chan
# ls
AUTHORS Makefile.am acinclude.m4 config.sub grubb nohup.out
BUGS Makefile.in aclocal.m4 configure install-sh result
COPYING NEWS compile configure.ac lib stage1
ChangeLog README config.guess debian missing stage2
INSTALL THANKS config.h.in depcomp mkinstalldir util
MAINTENANCE TODO config.lo docs netboot
<파일 묶기>
chan 디렉터리를 backup.tar 파일로 묶어 봅시다. tar 명령어는 -cf 옵션을 주로 사용합니다. -c 는 tar 아카이브를 생성하고 -f 옵션은 아카이브명을 지정합니다.
# tar -cf backup chan/
# ls -alh
total 4.5M
drwxr-xr-x 3 user user 4.0K Jul 4 10:05 .
drwxr-xr-x 28 user user 4.0K Jul 4 10:05 .
-rw-r--r-- 1 user user 4.5M Jul 4 10:05 backup.tar
drwxr-xr-x 10 user user 4.0K Jul 3 17;37 chan
<파일 보기>
-tvf 옵션은 tar로 묶인 아카이브를 실제로 풀지는 않고 파일의 내용만 출력합니다.
# tar -tvf backup.tar | more
drwxr-xr-x user/user 0 2010-07-03 17:37 chan/
drwxr-xr-x user/user 0 2005-05-07 17:37 chan/grub/
-rw-r--r-- user/user 605 2005-02-02 12;38 chan/grub/Makefile.am
-rw-r--r-- user/user 6858 2005-02-02 12;38 chan/grub/main.c
-rw-r--r-- user/user 605 2005-02-02 12;38 chan/grub/Makefile.in
... 생략 ...
<묶음 풀기>
-xf 옵션은 bakcup.tar 파일의 아카이브를 해제하고, -v 옵션은 명령이 실행되는 과정을 상세히 출력합니다.
# tar -xf backup.tar
<묶음 압축하기>
-cf 옵션에 z 옵션을 추가하면 아카이브를 하는 동시에 gzip으로 압축할 수 있습니다. 파일명은 tar 파일과의 구별을 위해 tar.gz나 tgz를 확장자로 사용합니다. -v 옵션은 실행 과정을 상세하게 출력합니다.
# ls -alh
total 1.2M
drwxr-xr-x 3 user user 4.0K Jul 4 10:14.
drwxr-xr-x 28 user user 4.0K Jul 4 10:14..
-rw-r--r-- 1 user user 1.1M Jul 4 10:14 backup.tar.gz
drwxr-xr-x 10 user user 4.0K Jul 4 10:14 chan
위에서 압축한 파일은 -xzf 옵션으로 압축을 해제할 수 있습니다. tar -xzf 명령은 gzip -d와 tar -xf 명령어 조합과 같습니다.
# tar -xzf bakcup.tar.gz
-u 옵션은 기존 아카이브 파일에 변경된 파일만 추가할 수 있습니다. 아래는 backup.tar 아카이브 파일에 새롭게 add_directory_test 디렉터리를 추가합니다.
# mkdir chan/add_directory_test
# tar -uvf backup.tar.gz chan/add_driectory_test/
아래는 시스템을 백업할 경우 자주 사용하는 옵션 조합입니다.
# tar cvpif backup.tar.gz -exclude=backup.tar.gz \
-exclude=/proc -exclude=/mnt -exclude=/media --exclude=/sys
-C 옵션은 아카이브를 해제할 대상 디렉터리를 지정할 수 있습니다.
# tar vxf foo.tar -C /home/chan
아래는 아카이브를 해제했다가 해제한 파일들을 삭제할 때 유용합니다.
# rm -f 'tar -tvf foo.tar | awk {'print $6'}'
또는
# tar tzf foo.tar | xargs rm -f
7. uncompress(압축 해제) |
1) 경로 : /usr/bin/uncompress
2) 요약 : compress로 압축된 파일을 해제
3) 사용 방법 : uncompress [옵션] 압축파일명
4) 옵션
-f : 강제로 압축 해제. 기존에 같은 이름의 파일이 있는 경우 덮어씀
-v : 압축이 해제되는 과정을 상세하게 출력
-c : 원본 파일이 변경되지 않고 해제되는 내용만을 출력
-V : 버전 정보 출력
5) 추가 설명
uncompress는 압축된 파일을 풀어주는 명령어입니다. -v 옵션은 uncompress 명령 실행 시 상세한 정보를 출력합니다.
# uncompress -v mbox
mbox: -- replaced with mbox.Z Compression: 44.22%
-c 옵션은 압축 파일을 해제하지 않고 결과 정보만 출력합니다.
# uncompress -c mbox.Z
From root Tue Jul 9 03:30:06 2004
Return-Path:: <MAILER-DAEMON@park.chanchan.com>
Received: from localhost (localhost)
by park.chanchan.com (8.11.6/8.11.6) id gjdfi209j;
Tue, 9 Jul 2004 03:30:06 +900
Date: Tue, 9 Jul 2004 03:30:06 +900
-f 옵션은 현재 디렉터리에 같은 이름의 파일이 존재하면 덮어 씁니다.
# uncompress -f -v mbox.Z
mbox.Z: -- replaced with mbox
'IT 이야기 > Linux 명령어' 카테고리의 다른 글
[RHEL6] 일반 명령어 1탄(bc, cal, cd, cp, cpio) (0) | 2020.03.20 |
---|---|
[RHEL6] 압축 및 해제 명령어 3탄(zcat, zcmp, zdiff, zmore, znew) (0) | 2020.03.18 |
[RHEL6] 압축 및 해제 명령어 1탄(bzip2, compress, gzexe, gzip) (0) | 2020.03.11 |
[RHEL6] 시스템 관리 명령어 6탄(shutdown, ulimit, uname, uptime, vmstat) (0) | 2020.03.11 |
[RHEL6] 시스템 관리 명령어 5탄(poweroff, reboot, runlevel, setup) (0) | 2020.03.11 |
댓글