Linux에서 tar 명령을 사용하여 파일을 압축하고 추출하는 방법
게시 됨: 2022-07-23Linux의 tar 명령은 종종 "tarball"이라고도 하는 .tar.gz 또는 .tgz 아카이브 파일을 만드는 데 사용됩니다. 이 명령에는 많은 옵션이 있지만 tar로 아카이브를 빠르게 만들려면 몇 글자만 기억하면 됩니다. tar 명령은 결과 아카이브도 추출할 수 있습니다.
Linux 배포판에 포함된 GNU tar 명령에는 압축이 통합되어 있습니다. .tar 아카이브를 만든 다음 단일 명령으로 gzip 또는 bzip2 압축으로 압축할 수 있습니다. 이것이 결과 파일이 .tar.gz 파일 또는 .tar.bz2 파일인 이유입니다.
업데이트, 7/18/22: 이 기사의 정확성을 검토했으며 최신 버전의 Ubuntu 및 기타 Linux 배포판에서 여전히 작동하는지 확인할 수 있습니다.
전체 디렉토리 또는 단일 파일 압축
Linux에서 전체 디렉토리 또는 단일 파일을 압축하려면 다음 명령을 사용하십시오. 또한 지정한 디렉토리 내의 다른 모든 디렉토리를 압축합니다. 즉, 재귀적으로 작동합니다.
tar -czvf 아카이브 이름.tar.gz /path/to/directory-or-file
이러한 스위치가 실제로 의미하는 바는 다음과 같습니다.
- -c: C 아카이브를 만듭니다.
- -z: 아카이브를 g z ip로 압축합니다.
- -v : 아카이브를 만드는 동안 터미널에 진행 상황을 표시합니다. "verbose" 모드라고도 합니다. v는 이러한 명령에서 항상 선택 사항이지만 유용합니다.
- -f : 아카이브의 파일 이름을 지정할 수 있습니다.
현재 디렉토리에 "stuff"라는 디렉토리가 있고 이를 archive.tar.gz라는 파일에 저장하려고 한다고 가정해 보겠습니다. 다음 명령을 실행합니다.
tar -czvf archive.tar.gz 물건
또는 현재 시스템의 /usr/local/something에 디렉토리가 있고 이를 archive.tar.gz라는 파일로 압축하려고 한다고 가정해 보겠습니다. 다음 명령을 실행합니다.
tar -czvf archive.tar.gz /usr/local/something
한 번에 여러 디렉토리 또는 파일 압축
관련: Linux 터미널에서 파일을 관리하는 방법: 알아야 할 11가지 명령
tar는 단일 디렉터리를 압축하는 데 자주 사용되지만 여러 디렉터리, 여러 개별 파일 또는 둘 다를 압축하는 데 사용할 수도 있습니다. 단일 파일 대신 파일 또는 디렉토리 목록을 제공하십시오. 예를 들어 /home/ubuntu/Downloads 디렉토리, /usr/local/stuff 디렉토리 및 /home/ubuntu/Documents/notes.txt 파일을 압축한다고 가정해 보겠습니다. 다음 명령을 실행하면 됩니다.
tar -czvf archive.tar.gz /home/ubuntu/Downloads /usr/local/stuff /home/ubuntu/Documents/notes.txt
백업하려는 디렉토리 또는 파일을 원하는 만큼 나열하십시오.
디렉토리 및 파일 제외
어떤 경우에는 전체 디렉토리를 압축하고 싶지만 특정 파일과 디렉토리는 포함하지 않을 수 있습니다. 제외하려는 각 디렉토리나 파일에 --exclude
스위치를 추가하면 됩니다.
예를 들어, /home/ubuntu를 압축하고 싶지만 /home/ubuntu/Downloads 및 /home/ubuntu/.cache 디렉토리는 압축하고 싶지 않다고 가정해 보겠습니다. 방법은 다음과 같습니다.
tar -czvf archive.tar.gz /home/ubuntu --exclude=/home/ubuntu/Downloads --exclude=/home/ubuntu/.cache
--exclude
스위치는 매우 강력합니다. 디렉토리와 파일의 이름을 사용하지 않고 실제로 패턴을 받아들입니다. 그것으로 할 수 있는 일이 훨씬 더 많습니다. 예를 들어 다음 명령을 사용하여 전체 디렉토리를 아카이브하고 모든 .mp4 파일을 제외할 수 있습니다.
tar -czvf archive.tar.gz /home/ubuntu --exclude=*.mp4
대신 bzip2 압축 사용
gzip 압축은 .tar.gz 또는 .tgz 파일을 만드는 데 가장 자주 사용되지만 tar는 bzip2 압축도 지원합니다. 이를 통해 종종 .tar.bz2, .tar.bz 또는 .tbz 파일로 명명되는 bzip2 압축 파일을 생성할 수 있습니다. 이렇게 하려면 여기 명령에서 gzip의 -z를 bzip2의 -j로 바꾸면 됩니다.
Gzip이 더 빠르지만 일반적으로 압축률이 약간 낮아서 파일 크기가 다소 커집니다. Bzip2는 느리지만 압축률이 조금 더 높기 때문에 파일 크기가 다소 작아집니다. Gzip은 기본적으로 gzip 지원을 포함하지만 bzip2 지원은 포함하지 않는 일부 제거된 Linux 시스템에서 더 일반적입니다. 그러나 일반적으로 gzip과 bzip2는 실질적으로 동일하며 둘 다 비슷하게 작동합니다.
예를 들어, stuff 디렉토리를 압축하기 위해 제공한 첫 번째 예제 대신 다음 명령을 실행합니다.
tar -cjvf archive.tar.bz2 물건
아카이브 추출
아카이브가 있으면 tar 명령으로 압축을 풀 수 있습니다. 다음 명령은 archive.tar.gz의 내용을 현재 디렉토리로 추출합니다.
tar -xzvf 아카이브.tar.gz
-x
스위치가 -c
스위치를 대체한다는 점을 제외하고는 위에서 사용한 아카이브 생성 명령과 동일합니다. 아카이브를 만드는 대신 압축을 풀 도록 지정합니다.
아카이브의 내용을 특정 디렉토리로 추출할 수 있습니다. 명령 끝에 -C
스위치를 추가하면 됩니다. 예를 들어, 다음 명령은 archive.tar.gz 파일의 내용을 /tmp 디렉토리로 추출합니다.
tar -xzvf archive.tar.gz -C /tmp
파일이 bzip2로 압축된 파일인 경우 위 명령의 "z"를 "j"로 바꿉니다.
이것은 tar 명령의 가장 간단한 사용법입니다. 이 명령에는 많은 추가 옵션이 포함되어 있으므로 여기에 모두 나열할 수는 없습니다. 자세한 내용은. 쉘에서 info tar 명령을 실행하여 tar 명령의 자세한 정보 페이지를 봅니다. 완료되면 q 키를 눌러 정보 페이지를 종료합니다. 온라인에서 tar의 매뉴얼을 읽을 수도 있습니다.
그래픽 Linux 데스크탑을 사용하는 경우 데스크탑에 포함된 파일 압축 유틸리티 또는 파일 관리자를 사용하여 .tar 파일을 생성하거나 추출할 수도 있습니다. Windows에서 무료 7-Zip 유틸리티를 사용하여 .tar 아카이브를 추출하고 생성할 수 있습니다.
리눅스 명령어 | ||
파일 | tar · pv · cat · tac · chmod · grep · diff · sed · ar · man · pushd · popd · fsck · testdisk · seq · fd · pandoc · cd · $PATH · awk · join · jq · fold · uniq · journalctl · tail · stat · ls · fstab · echo · less · chgrp · chown · rev · 보기 · 문자열 · 유형 · 이름 바꾸기 · zip · 압축 해제 · 마운트 · 언마운트 · 설치 · fdisk · mkfs · rm · rmdir · rsync · df · gpg · vi · nano · mkdir · du · ln · 패치 · 변환 · rclone · 파쇄 · srm | |
프로세스 | alias · screen · top · nice · renice · progress · strace · systemd · tmux · chsh · history · at · batch · free · which · dmesg · chfn · usermod · ps · chroot · xargs · tty · pinky · lsof · vmstat · timeout · wall · yes · kill · sleep · sudo · su · time · groupadd · usermod · groups · lshw · 종료 · 재부팅 · 정지 · poweroff · passwd · lscpu · crontab · 날짜 · bg · fg | |
네트워킹 | netstat · ping · traceroute · ip · ss · whois · fail2ban · bmon · dig · finger · nmap · ftp · curl · wget · who · whoami · w · iptables · ssh-keygen · ufw |
관련: 개발자 및 열광자를 위한 최고의 Linux 노트북