tar은 여러 개의 파일을 하나의 파일로 묶거나 풀 때 사용하는 명령이다. "테이프 아카이버(Tape ARchiver)"의 앞글자들을 따서 "tar"이라는 이름으로 불립니다.
아카이빙(archiving)과 압축(Compress)의 차이
아카이빙(archiving) : 파일이나 폴더를 하나로 묶는 행위 -> 용량을 줄어들지 않는다 주로 tar,cpio가 쓰인다.
압축(compress) : 파일이나 아카이브기기 디스크에서 차지하는 용량을 줄여주는 소프트웨어 도구이다 주로 gzip,bzip2,xz가 사용된다.
사용법
tar [옵션] [파일 또는 디렉토리] |
옵션
옵션 | 설명 |
-c | 지정한 파일이나 디렉토리를 하나로 묶어 새로운 tar 파일을 생성한다. (--create) |
-x | 생성된 tar 파일을 푼다.(--extract, --get) |
-a | 확장자를 기반으로 아카이브에 사용할 압축 프로그램을 정한다. |
-f 파일명 | 작업 대상이 되는 tar 파일의 이름을 지정한다. 파일명 대신 ‘-’ 를 쓰면 표준입출력이 된다.(--file=파일명) |
-v | 어떤 명령을 실행할 때 대상이 된 파일들을 보여준다. 예를 들어 c 옵션과 함께 사용하면 묶이는 파일의 이름을 보여준다.(--verbose) |
-t | tar 아카이브에 포함된 내용 확인 |
-C | 디렉토리를 변경할 때 사용한다 (--directory=디렉토리명) |
-z | gzip 관련 옵션으로 압축 파일인 tar.gz에 사용한다.(--gzip) |
-j | bzip2 관련 옵션으로 압축 파일인 tar.bz2에 사용한다 (--bzip2) |
-J | xz 관련 옵션으로 압축 파일인 tar.xz에 사용한다.(--xz) |
숙어처럼 같이 사용되는 옵션
- tar -czvf : gzip 포맷으로 압축하여 하나의 아카이브 파일로 묶는다.
- tar -cjvf : bzip2 포맷으로 압축하여 하나의 아카이브 파일로 묶는다.
- tar -cJvf : xz 포맷으로 압축하여 하나의 아카이브 파일로 묶는다.
압축형식
옵션 | 압축형태 | 기본형태 | 설명 |
-z | gzip | .tar.gz | zip과 같은 압축 알고리즘을 사용하지만 더 용량이 작음. |
-j | bzip | .tar.bz2 | 용량이 클 때, gzip에 비해 압축률이 좋지만 비교적 느림 |
-J | xzip | .tar.xz | 7-zip은 윈도우에서만 제공하는데 유닉스에 제공하기위해 사용됨 압축효율이 가장 좋음. |
예시
디렉토리를 tar로 묶고 내용 확인하기
#실습을 위해 새로운 디렉토리를 만들고 그 안에 파일을 생성 [root@rocky1 test]# tar cvf TESTcom.tar * # TESTcom 디렉토리에 파일과 디렉토리들을 tar로 묶기 Com/ hi.txt test.txt [root@rocky1 test]# ls Com TESTcom.tar hi.txt test.txt [root@rocky1 test]# tar -tvf TESTcom.tar # tar 내용 확인 drwxr-xr-x root/root 0 2023-05-09 10:23 Com/ -rw-r--r-- root/root 5 2023-05-03 12:40 hi.txt -rw-r--r-- root/root 5 2023-05-03 12:53 test.txt |
여러 파일을 tar로 묶기
[root@rocky1 test]# tar cvf TEST2.tar hi.txt test.txt hi.txt test.txt [root@rocky1 test]# ls Com TEST2.tar TESTcom.tar hi.txt test.txt |
압축하기
[root@rocky1 ~]# tar -czvf etc.tar.gz /etc [root@rocky1 ~]# ll -rw-r--r--. 1 root root 3256204 5월 9 09:47 etc.tar.gz 붉은색 글씨로 압축파일을 표시해줍니다. |
압축 풀기
[root@rocky1 etc]# tar -xzvf etc.tar.gz -C /var/tmp |
etc압축파일을 /var/tmp 의 위치에다가 푼다
원격 호스트에 압축 풀기
[root@rocky1 tmp]# tar -czvf - /etc | ssh rocky2 tar -xzvf - -C /tmp # etc 디렉토리를 압축하여 rocky2 tmp폴더에 압축을 풀기 [root@rocky1 tmp]# ssh rocky2 ls /tmp … drwxr-xr-x. 132 root root 8192 5월 9 09:32 etc … etc # 생성이 되었다. |
'리눅스-기초명령어 > 파일 관리' 카테고리의 다른 글
dd(data dumper) (0) | 2023.09.01 |
---|---|
SCP (Secure Copy) (1) | 2023.09.01 |