ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Linux] tar 와 tar.gz 차이 압축, 압축 해제
    programming/Linux 2022. 7. 8. 11:54

    tar

    리눅스에서 압축 파일을 다룰때 대부분 tar를 많이 사용하는데 tar, tar.gz, tar.bz2 다양하게 사용된다. tar는 (Tape ARchiver)의 앞 글자들을 따서 tar라는 이름으로 만들어졌다. 

    "tar로 압축(compress)한다"는 표현을 쓰는 경우가 많은데, 정확히 말하자면 tar 자체는 "데이터의 크기를 줄이기 위한 파일 압축"을 수행하지 않는다. 아래의 그림과 같이 여러파일을 하나의 파일로 묶는 용도로 사용된다. 대신, tar옵션을 사용하여 데이터의 크기를 줄이기 위한 파일 압축(gzip, bzip2)를 수행할 수 있다. 

     

    tar가 많이 사용되는 이유 중 한가지는, 단순 아카이버 기능에 더해, tar로 묶여지기 전 파일들의 속성과 심볼릭 링크, 디렉토리 구조등을 그대로 가져갈 수 있는 특징 때문이다. 

    https://recipes4dev.tistory.com/146

     

     

    tar 명령어 옵션

    # tar --help를 통해 옵션을 확인할 수 있다. 
    tar [OPTION...] [FILE]...
            -f     : 대상 tar 아카이브 지정. (기본 옵션)
            -c     : tar 아카이브 생성. 기존 아카이브 덮어 쓰기. (파일 묶을 때 사용)
            -x     : tar 아카이브에서 파일 추출. (파일 풀 때 사용)
            -v     : 처리되는 과정(파일 정보)을 자세하게 나열.
            -z     : gzip 압축 적용 옵션.
            -j     : bzip2 압축 적용 옵션.
            -t     : tar 아카이브에 포함된 내용 확인.
            -C     : 대상 디렉토리 경로 지정.
            -A     : 지정된 파일을 tar 아카이브에 추가.
            -d     : tar 아카이브와 파일 시스템 간 차이점 검색.
            -r     : tar 아카이브의 마지막에 파일들 추가.
            -u     : tar 아카이브의 마지막에 파일들 추가.
            -k     : tar 아카이브 추출 시, 기존 파일 유지.
            -U     : tar 아카이브 추출 전, 기존 파일 삭제.
            -w     : 모든 진행 과정에 대해 확인 요청. (interactive)
            -e     : 첫 번째 에러 발생 시 중지.

     

    tar 명령어 사용 예시

    현재 디렉토리의 모든 파일과 디렉토리를 tar로 묶기 tar cvf T.tar *
    대상 디렉토리를 포함한 모든 파일과 디렉토리를 tar로 묶기 tar cvf T.tar [PATH]
    파일을 지정하여 tar 아카이브로 묶기 tar cvf T.tar [FILE_1] [FILE_2]
    tar 아카이브를 현재 디렉토리에 풀기 tar xvf T.tar
    tar 아카이브를 지정된 디렉토리에 풀기 tar xvf T.tar -C [PATH]
    tar 아카이브의 내용 확인하기 tar tvf T.tar
    현재 디렉토리를 tar로 묶고 gzip으로 압축하기 tar zcvf T.tar.gz *
    gzip으로 압축된 tar 아카이브를 현재 디렉토리에 풀기 tar zxvf T.tar.gz
    현재 디렉토리를 tar로 묶고 bzip2로 압축하기 tar jcvf T.tar.bz2 *
    bzip2로 압축된 tar 아카이브를 현재 디렉토리에 풀기 tar jxvf T.tar.bz2
    tar 아카이브 묶거나 풀 때 파일 별 진행 여부 확인하기 tar cvfw T.tar *

     

    압축하기

    tar 압축

    # tar 압축
    tar -cvf [파일명.tar] [폴더명]
    tar -cvf test_dir.tar test_dir/

     

    tar.gz 압축

    # tar gz 압축
    tar -zxvf [파일명.tar.gz]
    tar -zxvf test_dir.tar.gz test_dir/

     

    tar.bz2 압축

    # tar bz2 압축
    tar -jxvf [파일명.tar.bz2]
    tar -jxvf test_dir.tar.bz2 test_dir/

     

     

    압축 해제 하기

    tar 압축 해제

    # tar 압축 해제
    tar -xvf [파일명.tar] 
    tar -xvf test_dir.tar

     

    tar.gz 압축 해제

    # tar.gz 압축 해제
    tar -zxvf [파일명.tar.gz] 
    tar -zxvf test_dir.tar.gz

     

    tar.bz2 압축

    # tar bz2 압축 해제
    tar -jxvf [파일명.tar.bz2] 
    tar -jxvf test_dir.tar.bz2

     

     

     

    참고자료 

    'programming > Linux' 카테고리의 다른 글

    [Linux] ldconfig  (1) 2023.03.06
    [Linux]쉘 스크립트(Shell Script)란?  (0) 2021.11.14
    [Linux]사용자 위주의 모니터링 도구 htop  (0) 2021.11.12
Designed by Tistory.