리눅스-아카이브/압축

kyunhyun94·2021년 12월 21일
0

아카이브 압축

시용법

# 아카이브 생성
$ tar -cvf [createTarName.tar] [target] [target2] [...]

tar 파일을 생성하는 명령어 셋입니다. -cvf 는 tar 명령어의 옵션들이겠죠.

하나씩 풀어보자면 -c 는 --create 의 줄임표현으로 파일을 생성하라는 옵션입니다. -v 는 --vervose 의 줄임표현으로 현재 작업중인 파일 또는 디렉토리 목록을 콘솔 화면에 출력해서 보여줍니다. 자세히 보고 싶으면 -vv 옵션을 주면 됩니다. -f 는 --file 의 줄임표현으로 파일명을 지정하는겁니다. 그렇다면 crateTarName.tar 은 만들 tar 파일 이름을 지정하는 곳이겠죠. target 은 tar 파일로 묶을 디렉토리 또는 파일을 적으면 됩니다.

# 아카이브 해제
$ tar -xvf [target.tar]

-cvf 와 비슷하지만 하나의 옵션만 다릅니다. -c 옵션 대신 -x 옵션이 있네요. -x 는 아카이브를 해제하는 옵션입니다. 즉 묶여있던 파일이나 디렉토리를 다시 풀어버리는것이죠. target.tar 은 해제할 tar 파일을 지정합니다. 그리고 현재 디렉토리에 아카이브 파일을 해제합니다.

# 아카이브 확인
$ tar -tvf [target.tar]

아카이브를 풀지 않고 내용만 뭐가 들어있는지 확인하고 싶을때 사용하면 됩니다. 앞서 봤던 옵션과 비슷하지만 -t 옵션이 들어가 있습니다. 이 옵션이 아카이브를 풀지 않고 확인할 수 있게 해줍니다

파일또는디렉토리_추가

열심히 엄청난 크기의 tar 파일을 만들었는데 어떤 녀석이 제일 중요한 파일 하나를 다른 디렉토리에 넣어버려서 이것도 tar 파일 안에 넣어야 합니다. 그런데 다시 tar 파일로 만드려니 막막합니다. 그럴때 이 옵션을 써줍시다.

- 아카이브에 파일 추가
$ tar -rvf [target.tar] [targetFile]

-r 옵션이 파일을 추가시키는 옵션입니다. 하지만, 같은 이름의 파일이 이미 있을 경우 덮어 쓰는것이 아니고 추가한 시간 순서대로 버전이름이 붙습니다. 아카이브를 해제할때는 최신 파일이 해제가 됩니다.

파일_업데이트

# 아카이브에 파일 업데이트
$ tar -uvf [target.tar] [targeFile]

업데이트할 파일과 아카이브 내의 파일의 수정된 시간대를 비교해 업데이트 파일이 더 최신이면 업데이트를 합니다. 이때에도 덮어 씌우지 않고 버전별로 이름이 붙습니다. 물론 해제할땐 최신의 파일이 해제됩니다.

일부해제

# 아카이브 일부 해제
$ tar -xvf [target.tar] [dir] [dir2] [...]

원하는 파일만 골라서 압축하기

--wildcards 옵션으로 파일 이름의 패턴을 지정하여 원하는 파일만 고를 수 있는데 shell의 문법을 따르면 된다. 또한 *.pdf와 같은 방식으로 타입 별로 골라서 압축할 수 있다.

tar - xvf 아카이브이름.tar —wildcars ‘*.pdf’ 

일부삭제

target.tar 에서 deleteFileName 을 가진 파일을 삭제합니다. 같은이름으로 버전별로 존재할 경우에도 전부 삭제합니다.

# 아카이브 일부 삭제
$ tar --delete --file=[target.tar] [deleteFileName]

기타-퍼미션유지

만약 퍼미션이 아주아주 중요한 아카이브라면 따로 옵션을 주어 확실하게 커미션을 유지할 수 있습니다.

# 아카이브 생성
$ tar -cvfp [createTarName.tar] [target]
# 아카이브 해제
$ tar -xvfp [target.tar]

기타- 경로설정해제

만약 현재 디렉토리가 아닌 다른 디렉토리에 아카이브를 해제

# 아카이브 해제
$ tar -xvf [target.tar] -C [deployDir]
profile
일하기싫어

0개의 댓글