Tar 로 Airship 의 신비로운 아카이브 보존

LinuxBeginner
지금 연습하기

소개

Linux 의 tar 명령어는 파일과 디렉토리를 아카이빙하는 데 사용되는 강력한 유틸리티입니다. 이 도구를 사용하면 여러 파일과 디렉토리를 단일 아카이브 파일로 묶어 데이터 저장, 전송 및 백업을 보다 효율적으로 만들 수 있습니다. 이 랩에서는 tar 명령어를 사용하여 아카이브를 생성하고, 내용을 확인하며, 파일들을 추출하는 방법을 배우게 됩니다. 이러한 기술은 시스템 관리자, 개발자 및 데이터를 효율적으로 관리해야 하는 모든 Linux 사용자에게 필수적입니다.

이것은 가이드 실험입니다. 학습과 실습을 돕기 위한 단계별 지침을 제공합니다.각 단계를 완료하고 실무 경험을 쌓기 위해 지침을 주의 깊게 따르세요. 과거 데이터에 따르면, 이것은 초급 레벨의 실험이며 완료율은 95%입니다.학습자들로부터 100%의 긍정적인 리뷰율을 받았습니다.

아카이빙을 위한 디렉토리 구조 생성

아카이브를 생성하기 전에, 작업할 파일과 디렉토리가 필요합니다. 이 단계에서는 나중에 아카이브될 다양한 파일이 포함된 디렉토리 구조를 생성합니다.

먼저, 기본 작업 디렉토리로 이동해 보겠습니다.

cd ~/project

이제 document_library라는 디렉토리를 만들고, 세 개의 하위 디렉토리 reports, specifications, references를 생성해 보겠습니다.

mkdir -p ~/project/document_library/{reports,specifications,references}

mkdir 명령어는 디렉토리를 생성하며, -p 옵션은 상위 디렉토리가 존재하지 않는 경우 생성할 수 있도록 합니다. 중괄호 {}는 여러 하위 디렉토리를 한 번에 생성하는 데 사용됩니다.

다음으로, 각 디렉토리에 몇 개의 예제 파일을 생성해 보겠습니다.

touch ~/project/document_library/reports/{quarterly,annual,monthly}.txt
touch ~/project/document_library/specifications/{product,service,system}.txt
touch ~/project/document_library/references/{guide,manual,handbook}.txt

touch 명령어는 빈 파일을 생성합니다. 이 경우, 각 하위 디렉토리에 세 개의 텍스트 파일을 생성하고 있습니다.

ls 명령어를 -R 옵션과 함께 사용하여 디렉토리의 내용을 재귀적으로 나열하여 디렉토리 구조가 올바르게 생성되었는지 확인해 보겠습니다.

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

이것은 예제 파일과 함께 디렉토리 구조를 성공적으로 생성했음을 보여줍니다. 다음 단계에서는 tar 명령어를 사용하여 이러한 파일의 아카이브를 생성하는 방법을 배우겠습니다.

tar 로 아카이브 생성

이제 디렉토리 구조가 설정되었으므로, tar 명령어를 사용하여 전체 document_library 디렉토리의 아카이브를 생성해 보겠습니다. tar 명령어는 다재다능하며 많은 옵션을 가지고 있지만, 지금은 가장 일반적인 옵션에 집중하겠습니다.

tar로 아카이브를 생성하는 기본 구문은 다음과 같습니다.

tar [options] [archive-name] [files or directories to archive]

일반적인 옵션은 다음과 같습니다.

  • -c: 새 아카이브 생성 (Create a new archive)
  • -z: gzip 을 사용하여 아카이브 압축 (Compress the archive using gzip)
  • -v: 상세 모드 (진행 상황 표시) (Verbose mode (show progress))
  • -f: 아카이브의 파일 이름 지정 (Specify the filename of the archive)
  • -C: 작업을 수행하기 전에 지정된 디렉토리로 변경 (Change to the specified directory before performing operations)

document_library 디렉토리의 압축된 아카이브를 생성해 보겠습니다.

tar -czvf ~/project/documents_archive.tar.gz -C ~/project document_library

이 명령어에서:

  • -c는 tar 에게 새 아카이브를 생성하도록 지시합니다.
  • -z는 tar 에게 gzip 을 사용하여 아카이브를 압축하도록 지시합니다.
  • -v는 상세 모드를 활성화하여 처리 중인 파일을 표시합니다.
  • -f ~/project/documents_archive.tar.gz는 아카이브 파일의 이름을 지정합니다.
  • -C ~/project는 tar 에게 아카이빙 전에 ~/project 디렉토리로 변경하도록 지시합니다.
  • document_library는 아카이브하려는 디렉토리입니다.

아카이브에 추가되는 모든 파일이 나열된 출력을 볼 수 있습니다. 이는 아카이브가 성공적으로 생성되고 있음을 나타냅니다.

아카이브가 생성되었는지 확인하기 위해, 존재 여부와 크기를 확인해 보겠습니다.

ls -lh ~/project/documents_archive.tar.gz

출력은 다음과 유사해야 합니다.

-rw-r--r-- 1 labex labex 237 Sep 22 10:00 /home/labex/project/documents_archive.tar.gz

ls와 함께 -lh 옵션은 사람이 읽을 수 있는 파일 크기를 포함한 자세한 정보를 표시합니다. 실제 파일 크기는 다를 수 있지만, 예제 파일이 비어 있으므로 비교적 작아야 합니다.

축하합니다! 디렉토리 구조의 압축된 아카이브를 성공적으로 생성했습니다. 다음 단계에서는 이 아카이브의 내용을 추출하지 않고 보는 방법을 살펴보겠습니다.

아카이브 내용 확인

아카이브를 추출하기 전에, 아카이브에 예상되는 파일이 포함되어 있는지 확인하거나 특정 파일을 찾기 위해 내용을 보는 것이 유용한 경우가 많습니다. tar 명령어는 아카이브를 추출하지 않고 내용을 나열하는 옵션을 제공합니다.

생성한 아카이브의 내용을 나열하려면 다음 명령어를 사용하십시오.

tar -tvf ~/project/documents_archive.tar.gz

이 명령어에서:

  • -t는 tar 에게 아카이브의 내용을 나열하도록 지시합니다.
  • -v는 상세 모드를 활성화하여 자세한 정보를 표시합니다.
  • -f ~/project/documents_archive.tar.gz는 검사할 아카이브 파일을 지정합니다.

다음과 유사한 출력을 볼 수 있습니다.

drwxr-xr-x labex/labex     0 2023-09-22 10:00 document_library/
drwxr-xr-x labex/labex     0 2023-09-22 10:00 document_library/references/
-rw-r--r-- labex/labex     0 2023-09-22 10:00 document_library/references/guide.txt
-rw-r--r-- labex/labex     0 2023-09-22 10:00 document_library/references/handbook.txt
-rw-r--r-- labex/labex     0 2023-09-22 10:00 document_library/references/manual.txt
drwxr-xr-x labex/labex     0 2023-09-22 10:00 document_library/reports/
-rw-r--r-- labex/labex     0 2023-09-22 10:00 document_library/reports/annual.txt
-rw-r--r-- labex/labex     0 2023-09-22 10:00 document_library/reports/monthly.txt
-rw-r--r-- labex/labex     0 2023-09-22 10:00 document_library/reports/quarterly.txt
drwxr-xr-x labex/labex     0 2023-09-22 10:00 document_library/specifications/
-rw-r--r-- labex/labex     0 2023-09-22 10:00 document_library/specifications/product.txt
-rw-r--r-- labex/labex     0 2023-09-22 10:00 document_library/specifications/service.txt
-rw-r--r-- labex/labex     0 2023-09-22 10:00 document_library/specifications/system.txt

이 출력은 아카이브의 각 파일 및 디렉토리의 권한, 소유자, 크기, 수정 날짜 및 경로를 보여줍니다.

아카이브에서 특정 파일을 검색하려면 출력을 grep으로 파이프할 수 있습니다. 예를 들어, 이름에 "annual"이 포함된 모든 파일을 찾으려면 다음과 같이 합니다.

tar -tvf ~/project/documents_archive.tar.gz | grep annual

다음이 표시되어야 합니다.

-rw-r--r-- labex/labex     0 2023-09-22 10:00 document_library/reports/annual.txt

아카이브의 내용을 보는 것은 특히 대용량 아카이브를 처리하거나 특정 파일에만 관심이 있는 경우, 추출하기 전에 내부 내용을 확인해야 할 때 유용합니다. 다음 단계에서는 아카이브에서 파일을 추출하는 방법을 배우겠습니다.

아카이브에서 파일 추출

이제 아카이브를 생성하고 내용을 보는 방법을 알았으므로, 아카이브에서 파일을 추출하는 방법을 배우겠습니다. 이는 백업에서 파일을 복원해야 하거나 다른 사람으로부터 아카이브를 받았을 때 유용합니다.

이를 시연하기 위해 먼저 원래 디렉토리 구조가 손실된 시나리오를 시뮬레이션해 보겠습니다. 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 작업에 필수적입니다.

요약

이 랩에서는 Linux 에서 파일 아카이브를 관리하기 위해 tar 명령어를 사용하는 방법을 배웠습니다. 몇 가지 필수 기술을 연습했습니다.

  1. 아카이빙을 준비하기 위해 파일과 함께 디렉토리 구조를 생성
  2. -czvf 옵션을 사용하여 tar 명령어로 압축된 아카이브 생성
  3. -tvf 옵션을 사용하여 추출하지 않고 아카이브 내용 보기
  4. -xzvf 옵션을 사용하여 아카이브에서 파일을 추출하여 데이터 복원

이러한 기술은 백업 및 복원 절차, 소프트웨어 설치 및 파일 관리를 포함한 많은 Linux 작업에 필수적입니다. tar 명령어는 Linux 환경에서 강력한 도구이며, 이를 효과적으로 사용하는 방법을 이해하면 데이터를 효율적으로 관리하는 데 도움이 됩니다.

tar 명령어의 주요 옵션을 기억하십시오.

  • -c: 새 아카이브 생성 (Create a new archive)
  • -x: 아카이브에서 파일 추출 (Extract files from an archive)
  • -t: 아카이브 내용 나열 (List the contents of an archive)
  • -z: gzip 압축 사용 (Use gzip compression)
  • -v: 상세 모드 (진행 상황 표시) (Verbose mode (show progress))
  • -f: 아카이브의 파일 이름 지정 (Specify the filename of the archive)
  • -C: 작업을 수행하기 전에 지정된 디렉토리로 변경 (Change to the specified directory before performing operations)

이제 Linux 환경에서 tar 명령어를 사용하여 백업을 생성하고, 파일을 공유하고, 데이터를 자신 있게 복원할 수 있습니다.