Linux 명령: tar, cpio, gzip, bzip 2, zip

12574 단어 Linux/shell/ops
데이터 압축 과 압축 풀기
tar 명령
tar 명령 은 Liux 의 파일 과 디 렉 터 리 에 파일 을 만 들 수 있 습 니 다.tar 를 이용 하여 특정한 파일 에 파일 (백업 파일) 을 만 들 수도 있 고 파일 에서 파일 을 바 꾸 거나 파일 에 새 파일 을 추가 할 수도 있 습 니 다.tar 는 처음에 테이프 에 파일 을 만 드 는 데 사용 되 었 으 며, 현재 사용 자 는 모든 장치 에서 파일 을 만 들 수 있 습 니 다.tar 명령 을 이용 하여 많은 파일 과 디 렉 터 리 를 하나의 파일 로 포장 할 수 있 습 니 다. 이것 은 백업 파일 이나 몇 개의 파일 을 하나의 파일 로 조합 하여 네트워크 전송 에 매우 유용 합 니 다.
우선 포장 과 압축 이라는 두 가지 개념 을 분명히 해 야 한다.포장 이란 많은 파일 이나 디 렉 터 리 를 하나의 전체 파일 로 바 꾸 는 것 을 말한다.압축 은 큰 파일 을 일부 압축 알고리즘 을 통 해 작은 파일 로 바 꾸 는 것 이다.
왜 이 두 개념 을 구분 해 야 합 니까?이것 은 Linux 의 많은 압축 프로그램 이 하나의 파일 만 압축 할 수 있 기 때 문 입 니 다. 이렇게 많은 파일 을 압축 하려 면 먼저 이 많은 파일 을 하나의 가방 (tar 명령) 으로 만 든 다음 에 압축 프로그램 으로 압축 해 야 합 니 다 (gzip bzip 2 명령).
문법
tar(  )(  )

옵션
-A --catenate:             ;
-B:      ;
-c --create:        ;
-C :         ,          ,        。
-d:       ;
-x --extract --get:          ;
-t --list:         ;
-z --gzip --ungzip:  gzip        ;
-Z --compress --uncompress:  compress        ;
-f --file=:      ;
-v --verbose:        ;
-r:            ;
-u:                     ;
-j:  bzip2    ;
-v:      ;
-l:        ;
-k:         ;
-m:        ;
-w:          ;
-p --same-permissions:            ;
-P --absolute-names:         ,         “/” ;
-N    --newer=:                    ;
--exclude=:           。

매개 변수
파일 이나 디 렉 터 리: 압축 할 파일 이나 디 렉 터 리 목록 을 지정 합 니 다.
실례
파일 을 모두 tar 패키지 로 포장 하기:
tar -cvf log.tar log2012.log       ,   ! 
tar -zcvf log.tar.gz log2012.log      ,  gzip    
tar -jcvf log.tar.bz2 log2012.log     ,  bzip2    

옵션 f 이후 의 파일 이름 은 스스로 지 었 습 니 다. 우 리 는 습관 적 으로 'tar' 로 식별 합 니 다.z 옵션 을 추가 하면. tar. gz 또는. tgz 로 gzip 압축 된 tar 가방 을 대표 합 니 다.j 옵션 을 추가 하면 'tar. bz2' 를 tar 패키지 이름 으로 합 니 다.
위 tar 가방 에 어떤 파일 이 있 는 지 찾 아 보 세 요.
tar -ztvf log.tar.gz

gzip 압축 된 log. tar. gz 를 사용 하기 때문에 log. tar. gz 가방 에 있 는 파일 을 찾 으 려 면 z 이 옵션 을 추가 해 야 합 니 다.
tar 패키지 압축 풀기:
tar -zxvf /opt/soft/test/log.tar.gz

미리 설 치 된 상황 에서 우 리 는 압축 파일 을 어느 곳 에서 든 풀 수 있다.
tar 의 일부 파일 만 압축 해제:
tar -zxvf /opt/soft/test/log30.tar.gz log2013.log

저 는 tar -ztvf 을 통 해 tar 가방 안의 파일 이름 을 찾 아 볼 수 있 습 니 다. 만약 에 하나의 파일 만 있 으 면 이 방식 으로 일부 파일 의 압축 을 풀 수 있 습 니 다!
파일 을 백업 하고 권한 을 저장 합 니 다:
tar -zcvpf log31.tar.gz log2014.log log2015.log log2016.log

-p 의 속성 은 매우 중요 합 니 다. 특히 원본 파일 의 속성 을 유지 하려 면.
폴 더 에서 날짜 보다 새 파일 을 백업 합 니 다.
tar -N "2012/11/13" -zcvf log17.tar.gz test

백업 폴 더 내용 은 일부 파일 을 제외 합 니 다:
tar --exclude scf/service -zcvf scf.tar.gz scf/*

사실 가장 간단 한 tar 는 기억 속 의 방식 만 사용 하면 된다.
   :tar -jcv -f filename.tar.bz2             
   :tar -jtv -f filename.tar.bz2
   :tar -jxv -f filename.tar.bz2 -C        

cpio 명령
cpio 명령 은 주로 백업 파일 을 만 들 거나 복원 하 는 도구 프로그램 입 니 다. cpio 명령 은 압축 파일 에 파일 을 복사 하거나 압축 파일 에서 파일 을 복사 할 수 있 습 니 다.
문법
cpio(  )

옵션
-0 --null:         ,    find   “-print0”    ;
-a --rest-access-time:           ;
-A --append:            ,               ,          ;
-b --awap:           “-ss”    ;
-B:   /         5210Bytes;
-c:   ASCII    ;
-C --io-size=:    /       ,   Byte;
-d --make-directories:    cpio       ;
-E --pattern-file=:      ,             , cpio           ,           ;
-f --nonmatching: cpio              ;
-F --file=:        ,           ,                         ;
-H:             ;
-i --extract:  copy-in  ,     ;
-l:        ,        ,                         ;
-k:          ,     cpio           ;
-l --link:             ,  copy-pass     ;
-L --dereference:       ,               ;
-m preserve-modification-time:           ;
-M --message=:           ;
-n --numeric-uid-gid:  “-tv”           ,      “-n”,                             ;
-o --create:  copy-out  ,     ;
-O:        ,        ,                         ;
-p --pass-through:  copy-pass  ,      ,            ;
-r --rename:           ,      ;
-R<:> ----owner<:>    copy-in       , copy-pass       ,       ,              ;
-s --swap-bytes:         ;
-S --swap-halfwords:          ;
-t --list:          ;
-u --unconditional:      ,           ,          ;
-v --verbose:           ;
-V --dot:     。              “.” ;
--block-size=:    /       ,       5,      2500,    10,      5120,    ;
--force-local:             ;
--help:    ;
--no-absolute-filenames:            ;
--no-preserve-owner:         ,       ,         ;
-only-verify-crc:      CRC     ,                        ;
--quiet:          ;
--sparse:              0  ,           ;
--version:      。

실례
/etc 의 모든 일반 파일 을/opt/etc. cpio 에 백업 하고 다음 명령 을 사용 하 십시오.
find /etc –type f | cpio –ocvB >/opt/etc.cpio

시스템 의 모든 자 료 를 테이프 장치 에 백업 하고 다음 명령 을 사용 합 니 다.
find / -print | cpio -covB > /dev/st0

이곳 /dev/st0 은 테이프 의 장치 이름 으로 SCSI 테이프 기 를 대표 합 니 다.
이전 테이프 에 백업 한 파일 을 보고 다음 명령 을 사용 하 십시오.
cpio  -icdvt < /dev/st0 > /tmp/st_content

백업 한 파일 이 너무 많아 서 한 화면 이 표시 되 지 않 을 수도 있 습 니 다. 이 때 우 리 는 다음 명령 을 이용 하여 테이프 기기 의 파일 정 보 를 파일 로 출력 합 니 다.
예제 1 의 백업 패 키 지 를 해당 위치 로 복원 하고 같은 파일 이 있 으 면 다음 명령 을 사용 합 니 다.
cpio –icduv < /opt/etc.cpio

cpio 복구 경 로 를 주의 하 십시오. cpio 가 백업 을 포장 할 때 절대 경 로 를 사용 하면 복구 할 때 이 절대 경로 로 자동 으로 복 구 됩 니 다. 이 예 는 백업 파일 을 모두/etc 경로 에 대응 하 는 디 렉 터 리 로 복원 합 니 다.포장 백업 에 상대 적 인 경 로 를 사용 하면 복원 할 때 도 상대 적 인 경로 로 복 구 됩 니 다.
위의 예 시 를 통 해 알 수 있 듯 이 cpio 는 파일 을 직접 읽 을 수 없습니다. 모든 파일 이나 디 렉 터 리 의 전체 경로 이름 이 있어 야 읽 기 를 식별 할 수 있 습 니 다. find 명령 의 출력 은 이 정도 에 이 르 렀 기 때문에 cpio 명령 은 일반적으로 find 명령 과 함께 사 용 됩 니 다.사실 위의 예 시 를 우 리 는 이미 그들의 조합 용법 을 보 았 다.
gzip 명령
gzip 명령 은 파일 을 압축 하 는 데 사 용 됩 니 다.gzip 는 광범 위 한 압축 프로그램 을 사용 합 니 다. 파일 이 압축 된 후에 이름 뒤에 'gz' 확장자 가 여러 군데 있 습 니 다.
gzip 는 Linux 시스템 에서 자주 사용 하 는 파일 을 압축 하고 압축 을 푸 는 명령 으로 편리 하면 서도 사용 하기 쉽다.gzip 는 디스크 공간 을 절약 하기 위해 크 고 적은 파일 을 압축 할 수 있 을 뿐만 아니 라 tar 명령 과 함께 Linux 운영 체제 에서 유행 하 는 압축 파일 형식 을 구성 할 수 있 습 니 다.통계 에 따 르 면 gzip 명령 은 텍스트 파일 에 대해 60 ~ 70% 의 압축 률 을 가지 고 있다.파일 크기 를 줄 이 는 것 은 두 가지 뚜렷 한 장점 이 있다. 하 나 는 저장 공간 을 줄 일 수 있 고, 다른 하 나 는 네트워크 를 통 해 파일 을 전송 할 때 전송 시간 을 줄 일 수 있다 는 것 이다.
문법
gzip(  )(  )

옵션
-a ——ascii:  ASCII    ;
-d --decompress ----uncompress:      ;
-f ——force:      。                           ;
-h ——help:    ;
-l ——list:           ;
-L ——license:         ;
-n --no-name:     ,               ;
-N ——name:     ,              ;
-q ——quiet:       ;
-r ——recursive:    ,                   ;
-S  ----suffix:         ;
-t ——test:            ;
-v ——verbose:        ;
-V ——version:      ;
-:         1~9   ,    “6”,       ,        ;
--best:         “-9”    ;
--fast:         “-1”    。

매개 변수
파일 목록: 압축 할 파일 목록 을 지정 합 니 다.
실례
test 6 디 렉 터 리 의 모든 파일 을. gz 파일 로 압축 합 니 다.
gzip *

상례 의 모든 압축 된 파일 을 압축 해제 하고 상세 한 정 보 를 열거 하 다
gzip -dv *

예 1 의 압축 된 파일 마다 정 보 를 자세히 표시 합 니 다. 압축 을 풀 지 않 습 니 다.
gzip -l *

tar 백업 파일 을 압축 합 니 다. 이 때 압축 파일 의 확장 자 는 'tar. gz' 입 니 다.
gzip -r log.tar

재 귀적 압축 디 렉 터 리
gzip -rv test6

이렇게 해서 모든 test 아래 의 파일 은 *. gz 로 변 했 고 디 렉 터 리 는 여전히 존재 합 니 다. 디 렉 터 리 안의 파일 만 상응 하여 *. gz 로 변 했 습 니 다. 이것 이 바로 압축 입 니 다. 포장 과 다 릅 니 다.디 렉 터 리 작업 이기 때문에 - r 옵션 을 추가 해 야 하위 디 렉 터 리 를 재 귀적 할 수 있 습 니 다.
압축 해제 디 렉 터 리
gzip -dr test6

명령
bzip 2 명령 은 'bz2' 형식의 압축 패 키 지 를 만 들 고 관리 하 는 데 사 용 됩 니 다.우 리 는 리 눅 스 압축 포장 방법 이 여러 가지 가 있 는 것 을 만 났 습 니 다. 다음은 리 눅 스 압축 포장 방법 중의 리 눅 스 bzip 2 명령 의 여러 가지 범례 를 설명 하여 보 여 드 리 겠 습 니 다. 보시 면 많은 수확 이 있 을 것 이 라 고 믿 습 니 다.
문법
bzip2(  )(  )

옵션
-c ——stdout:                ;
-d ——decompress:     ;
-f -force:bzip2        ,            ,          。    。      ;
-h ——help:    ;
-k ——keep:bzip2        ,       。        ,      ;
-s ——small:             ;
-t ——test:  .bz2        ;
-v ——verbose:         ,       ;
-z ——compress:      ;
-V ——version:      ;
--repetitive-best:             ,            ;
--repetitive-fast:             ,            。

매개 변수
파일: 압축 할 파일 을 지정 합 니 다.
실례
지정 한 파일 파일 이름 압축:
bzip2 filename
 
bzip2 -z filename

여기 서 압축 할 때 출력 되 지 않 습 니 다. 원래 파일 filename 을 삭제 하고 filename. bz2 로 바 꿉 니 다. 이전에 filename. bz2 가 있 었 다 면 바 꾸 지 않 고 오 류 를 알려 주지 않 습 니 다. (바 꾸 려 면 - f 옵션 을 지정 합 니 다. 예 를 들 어 bzip2 -f filename; filename 이 디 렉 터 리 라면 오 류 를 일 깨 워 줍 니 다. filename 이 눌 렸 다 면 bz2 접미사 가 있 으 면 압축 하지 않 고 bz2 접미사 가 없 으 면 다시 압축 합 니 다.
지정 한 파일 filename. bz2 압축 풀기:
bzip2 -d filename.bz2
 
bunzip2 filename.bz2

여기 서 압축 을 풀 때 표준 출력 이 없 으 면 원래 파일 filename. bz2 를 filename 으로 바 꿉 니 다. 이전에 filename 이 있 었 다 면 오 류 를 바 꾸 지 않 고 알림 하지 않 습 니 다 (바 꾸 려 면 -f 옵션 을 지정 합 니 다. 예 를 들 어 bzip2 -df filename.bz2.
압축 을 풀 때 결과 도 출력 합 니 다:
$bzip2 -v filename

입력 후 출력 은 다음 과 같 습 니 다:
filename:  0.119:1, 67.200 bits/byte, -740.00% saved, 5 in, 42 out.

여기에 -v 옵션 을 더 하면 출력 되 고 압축 예 만 사용 하면 압력 을 풀 때 같은 이치 bzip2 -dv filename.bz2 는 더 이상 예 를 들 지 않 습 니 다.
아 날로 그 압축 해제 실제 압축 해제 하지 않 음:
bzip2 -tv filename.bz2

입력 후 출력 은 다음 과 같 습 니 다:
filename.bz2: ok

여기 서 -t 아 날로 그 압축 해 제 를 지정 합 니 다. 실제 결 과 를 만 들 지 않 습 니 다. 검사 파일 과 유사 합 니 다. 물론 디 렉 터 리 아래 에 filename 이 있어 도 오류 출력 이 없 을 것 입 니 다. 압축 해 제 를 전혀 할 수 없 기 때 문 입 니 다. 화면 에 출력 하기 위해 -v 옵션 을 추가 하 였 습 니 다. 실제 압축 해제 bzip2 -dv filename.bz2 라면 'ok' 을 'done' 으로 바 꾸 었 습 니 다..
압축 을 풀 때 결과 파일 을 만 드 는 것 외 에 원래 파일 도 저장 합 니 다.
bzip2 -k filename

여기에 -k 를 더 하면 원본 파일 을 저장 합 니 다. 그렇지 않 으 면 원본 파일 은 결과 파일 로 대 체 됩 니 다. 압축 예 만 들 면 압축 을 풀 때 같은 이치 $bzip2 -dk filename.bz2 는 더 이상 예 를 들 지 않 습 니 다.
표준 출력 으로 압축 풀기:
bzip2 -dc filename.bz2

입력 후 출력 은 다음 과 같 습 니 다:
hahahhaahahha

표준 출력 에 -c 지정 한 파일 filename 의 내용 을 출력 합 니 다. filename. bz2 를 삭제 하지 않 습 니 다.
표준 출력 으로 압축:
bzip2 -c filename
bzip2: I won't write compressed data to a terminal.
bzip2: For help, type: `bzip2 --help'.

여기 서 -c 를 사용 하여 표준 출력 으로 압축 하여 기 존 파일 을 삭제 하지 않 습 니 다. 다른 것 은 압축 된 파일 을 표준 출력 으로 출력 할 수 없습니다.
bzip 2 를 사용 할 때 모든 뒤의 것 을 파일 로 간주 합 니 다 (파일 이름 이 '-' 로 시작 하 더 라 도):
bzip2 -- -myfilename

파일 이름 - 에 옵션 이 라 고 생각 하 는 오류 가 발생 하지 않도록 하기 위해 서 입 니 다.
zip 명령
zip 명령 은 압축 파일 을 풀 거나 압축 작업 을 할 수 있 습 니 다. zip 는 광범 위 한 압축 프로그램 을 사용 합 니 다. 파일 이 압축 되면 'zip' 확장자 가 있 는 압축 파일 이 따로 생 깁 니 다.
문법
zip(  )(  )

옵션
-A:             ;
-b:           ;
-c:             ;
-d:             ;
-D:            ;
-f:         “-u”    ,         ,                 ,                 ;
-F:            ;
-g:                  ,            ;
-h:    ;
-i:          ;
-j:           ,          ;
-J:              ;
-k:  MS-DOS         ;
-l:     , LF     LF+CR  ;
-ll:     , LF+cp     LF  ;
-L:      ;
-m:             ,      ,           ;
-n:               ;
-o:                   ,                  ;
-q:         ;
-r:    ,                   ;
-S:         ;
-t:               ;
-T:                  ;
-u:             ;
-v:               ;
-V:  VMS         ;
-w:            ,     VMS       ;
-x:            ;
-X:          ;
-y:        ,           ,     UNIX        ;
-z:         ;
-$:                   ;
-:         1~9   。

매개 변수
  • zip 압축 패키지: 만 들 zip 압축 패 키 지 를 지정 합 니 다.
  • 파일 목록: 압축 할 파일 목록 을 지정 합 니 다.
  • 실례/home/Blinux/html/ 이 디 렉 터 리 의 모든 파일 과 폴 더 를 현재 디 렉 터 리 의 html. zip 로 압축 합 니 다.
    zip -q -r html.zip /home/Blinux/html
    

    위의 명령 동작 은 절대 주소 의 파일 과 폴 더 를 압축 하 는 것 입 니 다. 다음은 상대 경로 디 렉 터 리 를 압축 하 는 것 입 니 다. 예 를 들 어 현재 Bliux 라 는 디 렉 터 리 에서 다음 작업 을 수행 하면 상기 와 같은 효 과 를 얻 을 수 있 습 니 다.
    zip -q -r html.zip html
    

    예 를 들 어 현재 나의 html 디 렉 터 리 에서 내 가 조작 하 는 zip 압축 명령 은:
    zip -q -r html.zip *
    

    좋은 웹페이지 즐겨찾기