ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 리눅스 tar 명령 사용법
    컴퓨터/서버관리 2008. 6. 5. 16:30
    tar 명령어 : 아카이브를 만들거나 풀때 사용하는 명령어 입니다.
     
    아카이브는 여러 파일을 한 파일로 묶은 것을 말합니다.
    tar는 압축하지 않고, 단지 하나의 파일로 묶는 역할만 합니다.
    아카이브의 압축은 gzip이나 bzip2등을 사용합니다.
     
    아카이브를 만드는 목적은 파일의 백업이나 배포를 편리하게 하기 위함입니다.
    아카이브의 확장자는 .tar이며 일반적으로 tar로 묶인 아카이브를 gzip으로 압축하여
    확장자가 .tar.gz인 압축 아카이브를 많이 이용합니다.
     
    * 옵션
     
    -f --file= 
    -f 는 아카이브 파일의 이름을 지정해 주는 옵션입니다.. -f 로 아카이브의 이름을 꼭 명시해야 합니다.
     
    -v --verbose
    -v 옵션이 있으면 아카이브에 추가되거나 풀리고 있는 파일의 이름을 화면에 보여줍니다.
    진행사항을 알 수 있기 때문에 사용하는게 좋으며 "ls -l" 과 같은 형식으로 파일을 보려면 v를 두번 써줍니다.
     
    -c --create
    새로운 아카이브를 생성합니다.
     
    -t --list
    아카이브의 내용(묶인 파일이름)을 보여줍니다.
     
    -x --extract
    아카이브에 묶인 파일이나 디렉토리를 풀어줍니다.
     
     
    * 사용 방법
     
    - aaa.tar이란 아카이브 풀기

    - aaa, aaa.txt, bbb, bbb.txt 의 4개의 파일로 bbb.tar이란 아카이브 만들기

    tar -tvf aaa.tar : aaa.tar이란 아카이브 내용보기

    퍼미션을 유지하며 aaa, aaa.txt, bbb, bbb.txt의 4개의 파일을 ccc.tar이란 아카이브 만들기

     
    * tar+gzip 압축하기
    tar -czvf aaa.tar.gz 묶을파일과디렉토리들
    aaa.tar.gz 라는 이름으로 aaa, aaa.txt, bbb, bbb.txt의 4개의 파일을 압축하여 묶어줍니다.
    Gzip 으로 압축을 할때에는 –z 옵션을 사용합니다.

     
    * tar+bzip2 압축하기
    tar -cjvf aaa.tar.bz 묶을파일과디렉토리들
    aaa.tar.bz 라는 이름으로 aaa, aaa.txt, bbb, bbb.txt의 4개의 파일을 압축하여 묶어줍니다.
    bzip2 으로 압축을 할때에는 –j 옵션을 사용합니다.

     
    * gzip으로 압축된 tar 풀기
    tar -xvzf aaa.tar.gz
    aaa.tar.gz 라는 tar 로 묶인뒤 gzip 으로 압축된 파일을 먼저 압축을 푼뒤에 묶인 파일까지 풀어줍니다.

     
    * bzip2로 압축된 tar 풀기
    tar -xvjf aaa.tar.bz
    aaa.tar.bz 라는 tar 로 묶인뒤 bzip2로 압축된 파일을 먼저 압축을 푼뒤에 묶인 파일까지 풀어줍니다.

     
    * tar 압축을 풀 때 원하는 파일만 압축풀기
    tar –zxvf(gzip의경우 상용) [압축 파일명] [압축파일안의 압축을 풀고자하는 파일경로]
    tar –jxvf(bzip2의경우 상용) [압축 파일명] [압축파일안의 압축을 풀고자하는 파일경로]
     
    아래의 설명은 gzip으로 압축한 파일을 예로들어 기재한 내용입니다.
    aaa.tar.gz 란 압축파일 안의 ddd파일만 압축을 풀어줍니다.
    ddd파일이 aaa.tar.gz안의 어느 경로에 압축되어 있는지 경로를 알고 계셔야 합니다.
    aaa.tar.gz의 파일안의 트리구조는 아래와 같다고 할때의 경우 ddd 파일의 경로는
    aaa/ccc/ddd 이므로 tar –zxvf aaa.tar.gz aaa/ccc/ddd 의 명령어를 입력하여 실행합니다.
    aaa/
    aaa/ggg/
    aaa/ccc/eee
    aaa/ccc/ddd/
    aaa/sss.txt
    aaa.txt
    bbb/
    bbb.txt
    아래의 그림을 보시면 aaa/ccc/의 폴더가 생성되어 있으며 기존 aaa.tar.gz으로 압축되기전의 ccc폴더안의 eee, ddd 폴더중 ddd 폴더만 압축이 풀려있는 것을 확인 하실수 있습니다.
     

     
    * 용량이 많은 파일을 분할하여 압축하는 법(아래의 예제는 gzip으로 압축하는 방식 입니다.)
    tar -cvzf – [압축할 파일 이름] | split -b 100m – [압축될 파일이름].tar.gz
    test란 파일을 (약)100M으로 분할하여 압축을 하고자 한다면
    tar –cvzf – test | split –b 100m – test.tar.gz 의 명령을 내리시면 됩니다.

     
    ls –al 명령어로 확인하여 보시면 test.tar.gzaa, test.tar.gzab … 의 형식으로 용량이 100M로 분할되어 압축된 것을 확인하실수 있습니다.

     
    * 분할하여 압축한 파일 풀기
    cat [압축한 파일명]* | tar -xvzf –
    “*”는 모든것이란 뜻입니다.
    위에서 분할하여 압축된 test.tar.gz의 파일들을 압축을 푼 예제입니다.
    cat test.tar.gz* | tar -xvzf –
     

     
    아래의 그림을 확인하여 보시면 분할하여 압축한 파일들이 test란폴더에 풀려있는 것을 확인하실수 있습니다.
Designed by Tistory.