아카이브에서 파일 추출
이제 아카이브를 생성하고 내용을 보는 방법을 알았으므로, 아카이브에서 파일을 추출하는 방법을 배우겠습니다. 이는 백업에서 파일을 복원해야 하거나 다른 사람으로부터 아카이브를 받았을 때 유용합니다.
이를 시연하기 위해 먼저 원래 디렉토리 구조가 손실된 시나리오를 시뮬레이션해 보겠습니다. document_library 디렉토리를 제거합니다.
rm -rf ~/project/document_library
rm 명령어는 파일과 디렉토리를 제거하며, -rf 옵션은 재귀적으로 작동하고 확인 메시지 없이 강제로 제거하도록 지시합니다. 실제 시나리오에서 이 명령어를 사용할 때는 주의하십시오. 파일이 영구적으로 삭제됩니다.
디렉토리가 사라졌는지 확인해 보겠습니다.
ls -la ~/project
목록에 document_library가 표시되지 않아야 하지만, documents_archive.tar.gz 파일은 여전히 표시되어야 합니다.
이제 아카이브를 추출하여 파일을 복원해 보겠습니다. tar를 사용하여 추출하는 기본 구문은 다음과 같습니다.
tar [options] [archive-name]
일반적인 추출 옵션은 다음과 같습니다.
-x: 아카이브에서 파일 추출 (Extract files from an archive)
-z: gzip 을 사용하여 압축 해제 (Decompress using gzip)
-v: 상세 모드 (진행 상황 표시) (Verbose mode (show progress))
-f: 아카이브의 파일 이름 지정 (Specify the filename of the archive)
-C: 추출하기 전에 지정된 디렉토리로 변경 (Change to the specified directory before extracting)
아카이브를 추출해 보겠습니다.
tar -xzvf ~/project/documents_archive.tar.gz -C ~/project
이 명령어에서:
-x는 tar 에게 파일을 추출하도록 지시합니다.
-z는 tar 에게 gzipped 아카이브의 압축을 해제하도록 지시합니다.
-v는 상세 모드를 활성화하여 추출되는 파일을 표시합니다.
-f ~/project/documents_archive.tar.gz는 아카이브 파일을 지정합니다.
-C ~/project는 tar 에게 파일을 ~/project 디렉토리로 추출하도록 지시합니다.
아카이브를 생성할 때와 유사하게, 추출되는 모든 파일이 나열된 출력을 볼 수 있습니다.
디렉토리 구조가 복원되었는지 확인해 보겠습니다.
ls -R ~/project/document_library
원래 생성했던 것과 동일한 디렉토리 구조와 파일을 볼 수 있습니다.
/home/labex/project/document_library:
references reports specifications
/home/labex/project/document_library/references:
guide.txt handbook.txt manual.txt
/home/labex/project/document_library/reports:
annual.txt monthly.txt quarterly.txt
/home/labex/project/document_library/specifications:
product.txt service.txt system.txt
아카이브에서 특정 파일만 추출하려면 아카이브 이름 뒤에 해당 경로를 지정할 수 있습니다. 예를 들어, reports 디렉토리만 추출하려면 다음과 같이 합니다.
mkdir -p ~/project/extracted_reports
tar -xzvf ~/project/documents_archive.tar.gz -C ~/project/extracted_reports document_library/reports
이렇게 하면 reports 디렉토리와 해당 내용만 extracted_reports 디렉토리로 추출됩니다.
축하합니다! tar 명령어를 사용하여 아카이브에서 파일을 추출하는 방법을 성공적으로 배웠습니다. 이 기술은 백업 복원, 소스에서 소프트웨어 설치 및 기타 많은 Linux 작업에 필수적입니다.