리눅스 tar

From CS Wiki
(Redirected from Tar)

리눅스·유닉스 운영체제에서 파일 묶기 및 압축에 사용되는 대표적인 프로그램

  • (참고) 단순 tar 파일은 압축률이 0인 단순 파일 묶음이다. z옵션을 추가해야 '압축'이 된다.

사용법[edit | edit source]

tar [옵션] 결과파일명 압축대상파일

옵션[edit | edit source]

  • -A, --catenate : 아카이브에 tar 파일을 추가한다.
  • -c, --create : 새로운 아카이브 파일을 만든다.
  • -C, --directory DIR : 대상 디렉터리(DIR)를 지정한다.
  • -d, --diff, --compare : 아카이브와 파일 시스템의 차이를 비교한다.
  • -f, --file=ARCHIVE : 아카이브 이름(ARCHIVE)을 지정한다.
  • -j -I --bzip : bzip2를 이용해 압축한다.
  • -M, --multi-volume : 멀티 볼륨 아카이브를 생성, 해제, 출력한다.
  • -r, --append : 아카이브의 끝에 파일을 추가한다.
  • -t, --list : 아카이브 목록을 출력한다.
  • -u, --update : 아카이브의 목록 중 기존의 파일에서 업데이트된 파일만 추가한다.
  • -v, --verbose : 상세한 정보를 출력한다.
  • -w, --interactive : 모든 행동에 사용자의 확인을 요구한다.
  • -x, --extract, --get : 아카이브에서 파일을 푼다.
  • -z --gzip, --ungzip : gzip으로 압축한다. ungzip으로 압축을 해제한다.
  • --help : 도움말을 출력한다.
  • --version : 버전 정보를 출력한다.

예제[edit | edit source]

  • 현재 디렉터리에 있는 bbs 디렉터리를 bbs.tar로 묶기
    • 꼭 f를 옵션의 마지막 순서로 넣어야 한다. -cfz라고 하면 Cannot stat: No such file or directory 라는 에러가 날 것이다. f 바로 뒤에 목적 파일 경로를 넣어줘야 에러가 안 난다.
tar -cvf bbs.tar bbs
  • 현재 디렉터리에 있는 bbs 디렉터리를 bbs.tar.gz로 압축하기
    • 확장자로 tar.gz를 붙이는 것은 압축을 풀 때 이 파일이 어떻게 압축이 된 것인지 알 수 있게 해주기 위함
tar -cvzf bbs.tar.gz bbs
  • 단순 묶음 해제하기
    • 현재 디렉터리에 그대로 풀리게 됨
tar -xvf bbs.tar
  • 경로를 지정하여 묶음 해제하기
    • 묶을 때와 달리 -C 옵션이 필요
    • 디렉터리를 생성해서 풀어주진 않으므로 원래 있는 디렉터리를 지정하거나 mkdir로 디렉터리 생성 필요
tar -xvf bbs.tar -C bbs2
  • 압축 해제하기
    • z옵션을 주어 gzip으로 압축된 파일은 풀 때도 단순히 z옵션을 추가하면 됨
tar -xzvf bbs.tar

트러블 슈팅[edit | edit source]

tar: Exiting with failure status due to previous errors

  • 설명
    • 압축 과정에서 어떤 에러라도 발생할 경우 위와 같은 메시지가 뜬다. 예를 들면 압축을 하는 과정에서 일부 파일에 접근할 권한이 없어 몇몇 파일을 빼고 압축이 되는 경우에 위와 같은 메시지를 확인할 수 있다. 이 경우 아래와 같이 어떤 문제가 있었는지 출력되는 내용을 통해 확인할 수 있다.
    • 즉 이 에러는 어떤 에러든 에러에 해당하는 메시지가 출력되고, 압축은 완료되었으니 "압축은 완료되었지만 일부 문제가 있었던 것으로 보이니 출력된 에러 내용을 확인하세요!"라는 내용이라고 생각하면 된다.
  • 해결법
    • 어떤 특정 상황에서 발생하는 것이 아니므로 뚜렷한 해결법은 없다. 그런데 아무 문제 없이 압축이 되는데도 자꾸 저 에러메시지가 나오는 것이 신경쓰인다면, 혹시라도 -v 옵션을 추가해서 쓰고 있다면 이를 제외시켜 볼 수 있다. -v 옵션이 추가 되어 있을 경우 별 것 아닌 상황에서도 사소한 안내 메시지가 나올 수 있는데, 이렇게 조금이라도 문제가 있다는 내용이 출력되면 위와 같은 메시지가 나오므로 불필요한 메시지를 최소화 하는 것이다.
    • 다만, 정말 아무런 문제 없이 완벽하게 압축이 되는 경우엔 저 메시지도 볼 일이 없으니, 가장 좋은 것은 저 메시지 외에 같이 출력된 다른 에러(안내) 메시지들을 추적하여 해결하는 것이 좋다.
    • 같이 출력된 다른 에러 메시지가 무시해도 될 에러라면 저 메시지도 무시해도 된다. 예를 들어 웹폴더를 통째로 압축하는데 세션파일이 접근권한이 없어 압축이 안되는 상황이라면 권한이 없다는 에러가 여러줄 출력되고 위와 같은 에러 메시지도 출력된다. 여기서 굳이 세션 폴더를 제외하긴 귀찮고, 세션 파일이 압축에 포함되지 않는 것이 전혀 문제가 안된다면 그냥 압축이 잘 된것으로 알고 무시해도 무방하다.