자유롭게 게시물을 올릴수있는 게시판입니다.
  • 유년추억
  • 학교생활
  • 입시준비
  • 대학생활
  • 군생활
  • 알바생활
  • 취업준비
  • 직장생활
  • 원룸생활
  • 연애중
  • 결혼준비
  • 집안살림
  • 자녀교육
  • 창업준비
  • 이민유학
  • 노후생활
  • 전체보기


강좌 6편 압축

 

파일, 아카이브(archive) 명령어




파일, 아카이브(archive) 명령어




아카이빙



tar

유닉스의 표준 아카이브(archive) 유틸리티. 원래는 Tape ARchiving
프로그램에서 왔는데, 이 프로그램은 테입 드라이브부터 보통 파일, 심지어는 표준출력까지 포함하는 모든 종류의 디바이스에 대해서
모든 종류의 아카이브를 다룰 수 있도록 만들어 졌습니다. GNU tar는 오래전부터 gzip 압축을 다룰 수 있는 옵션이
패치되어 있었는데, tar czvf archive-name.tar.gz * 라고 하면
하위 디렉토리를 포함한 모든 파일을 묶어서 압축하라는 뜻입니다(도트파일은 제외).


유용한 tar 옵션 몇 가지:




  1. -c 만들기(새 아카이브)



  2. --delete 지우기(아카이브에 들어 있는 파일)



  3. -r 덧붙이기(파일을 아카이브로)



  4. -t 목록(아카이브 내용)



  5. -u 아카이브 업데이트



  6. -x 뽑아내기(아카이브에 들어 있는 파일)



  7. -z 아카이브를 gzip
    으로 압축
















경고

gzip으로 묶인채 손상된 tar 아카이브는 복구하기가 매우 힘들기
때문에 중요한 파일을 아카이브로 만들때는 여러 군데에 백업을 해 놓기 바랍니다.




shar

쉘 아카이브 유틸리티. 쉘 아카이브 파일은 실제로는 #!/bin/sh 헤더와
아카이브를 풀기 위한 명령어들로 이루어진 쉘 스크립트로써, 압축되지 않은 파일들이 쭉 붙어 있는 파일입니다. shar 아카이브는
아직도 인터넷 뉴스 그룹에서 볼 수 있는데 여기 말고 다른 곳에서는 tar/gzip
때문에 거의 안 씁니다. shar 아카이브는 unshar
명령어로 풀어 줍니다.


ar

주로 바이너리 오브젝트 파일 라이브러리에서 쓰이는 아카이브를 위한 생성, 조작 유틸리티.


cpio

이 특화된 아카이브 복사 명령어(copy input and output)는 tar/gzip 때문에 이제 거의 안 쓰이지만 디렉토리 트리를 옮기려는
경우등의 쓰임새가 아직 남아 있습니다.



예 cpio로 디렉토리 트리 옮기기









#!/bin/bash

# cpio 로 디렉토리 트리를 복사하기.

ARGS=2
E_BADARGS=65

if [ $# -ne "$ARGS" ]
then
echo "사용법: `basename $0` source destination"
exit $E_BADARGS
fi

source=$1
destination=$2

find "$source" -depth | cpio -admvp "$destination"
# 여기서 쓰인 cpio 옵션이 무슨 뜻인지 알려면 맨 페이지를 읽어 보세요.

exit 0




 



예 rpm 아카이브 풀기









#!/bin/bash
# de-rpm.sh: 'rpm' 아카이브 풀기

E_NO_ARGS=65
TEMPFILE=$$.cpio # "유일한" 임시 파일.
# $$ 는 스크립트의 프로세스 ID.

if [ -z "$1" ]
then
echo "사용법: `basename $0` filename"
exit $E_NO_ARGS
fi


rpm2cpio < $1 > $TEMPFILE # rpm 아카이브를 cpio 아카이브로 변환.
cpio --make-directories -F $TEMPFILE -i # cpio 아카이브 풀기.
rm -f $TEMPFILE # cpio 아카이브 지우기.

exit 0







 


압축



gzip

표준 GNU/UNIX 압축 유틸리티로서, 성능이 떨어지고 특허가 걸려 있는 compress를
대신합니다. 압축 풀기 명령어는 gunzip으로써, gzip
-d
와 같습니다.


zcat 필터는 gzip으로 묶인 파일의 압축을
풀어 표준출력으로 내보내기 때문에 파이프의 입력이나 재지향에서 쓰일 수 있습니다. 즉, 실제로는 입축 파일에 대해서 동작하는
cat이라고 보면 됩니다(옛날 compress 로 묶인 파일도 포함).
zcat은 gzip -dc와 같습니다.













경고

몇몇 상업용 유닉스 시스템에서는 zcat이 uncompress -c와 동의어로 쓰이지만 gzip으로 묶인
파일에 대해서는 동작하지 않습니다.




 
 

bzip2


또 다른 압축 유틸리티로써, 특별히 크기가 큰 파일에 대해서는 gzip보다 더 효율적입니다.
bzip2에 대한 압축 풀기 명령어는 bunzip2입니다.


compress, uncompress

상용 유닉스 배포판에서 찾을 수 있는 오래되고 특허가 걸려있는 유틸리티이고, 더 효율적인 gzip으로 거의 다 바뀌었습니다. gunzip이 compress로 묶인 파일들을 풀 수 있지만, 리눅스 배포판들은 호환성을 위해서 compress를 닮은 명령어를 포함시킵니다.




작은 정보: znew 명령어는 compress로
압축된
파일을 gzip으로 압축된 파일로 변환해 줍니다.




sq

또 다른 압축 유틸리티로써 오직 정렬된 아스키 낱말 목록에 대해서만 동작하는 필터입니다. sq
< input-file > output-file
처럼 표준 필터를 쓰듯이 쓰면 됩니다. 속도는 빠르지만
gzip만큼 효과적이지는 않습니다. 이 명령어에 해당하는 압축 풀기 필터는 unsq이고
사용법은 sq와 같습니다.




작은 정보: sq의 출력을 gzip에
파이프로 걸어서 더 압축 시킬 수도 있습니다.




zip, unzip

도스의 PKZIP과 호환되는 크로스 플랫폼 파일 아카이빙및 압축 유틸리티. 인터넷에서
"Zip"으로 묶인 아카이브들이 "타르볼"보다 더 많이 쓰입니다.







파일 정보


file

파일 종류를 구분지어 주는 유틸리티. file file-name
이라고 치면 ascii text이 data같은
file-name에 대한 스펙을 알려줍니다. 이 명령어는 Linux/UNIX 배포판에
따라 /usr/share/magic이나 /etc/magic, /usr/lib/magic등에서 매직 넘버를 참고해서 파일 스펙을 알려줍니다.


-f 옵션을 쓰면 파일이름의 목록이 들어 있는 지정된 파일을 분석하면서 배치 모드로
동작합니다. -z 옵션은 대상 파일이 압축된 파일일 경우 강제로 압축이 풀린 상태의
파일 타입을 분석해 줍니다.










bash$ file test.tar.gz
test.tar.gz: gzip compressed data, deflated, last modified: Sun Sep 16 13:34:51 2001, os: Unix

bash file -z test.tar.gz
test.tar.gz: GNU tar archive (gzip compressed data, deflated, last modified: Sun Sep 16 13:34:51 2001, os: Unix)




 









2003-04-22 01:12:08
1505 번 읽음
☞ 로그인 후 의견을 남기실 수 있습니다
 캐시선물





365ch.com 128bit Valid HTML 4.01 Transitional and Valid CSS!
태그