Tutoriel Linux

리눅스에서 Tar를 사용하여 경로 손실 없이 아카이브를 생성하고 압축 해제하는 방법

Débutant2 min de lecture
À retenirLinux n'est pas réservé aux experts. Le bon point de départ : une distribution accessible, une sauvegarde propre et quelques commandes comprises.

아카이브를 검색했습니다. 타르 또는 tar.gz폴더를 제대로 열거나 이동하기 전에 압축해야 할 때가 있습니다. 명령어는 간단해 보이지만, 압축 과정에서 전체 디렉토리 구조가 잘못된 위치에 다시 생성되거나 보존하려던 파일이 덮어쓰여지는 경우가 있습니다.

저는 치료를 권합니다. 타르 이 가이드에서는 아카이브를 생성하고, 내용을 나열하고, 선택한 폴더에 압축을 풀고, 프로덕션 파일을 수정하기 전에 결과를 확인하는 방법을 보여줍니다.

Tux는 Linux tar 아카이브를 폴더와 추상 경로를 사용하여 구성합니다.
tar 명령어를 사용할 때, 대상 폴더와 저장 경로는 명령어 자체만큼이나 중요합니다.

Tar는 압축이 아닌 아카이빙에 사용됩니다.

명심해야 할 핵심 사항은 다음과 같습니다. tar는 파일을 그룹화하고 파일 경로를 유지합니다.압축은 흔히 gzip, xz 또는 bzip2와 같은 도구를 사용하여 추가됩니다. 그래서 파일들이 이런 형태로 되어 있는 것을 볼 수 있는 것입니다. .타르, .tar.gz, .tgz, .tar.xz 또는 .tar.bz2.

알 수 없는 압축 파일을 해제하기 전에 개인 폴더나 다른 폴더에서 임의의 명령어를 직접 실행하지 마십시오. /var/www그 내용을 나열해 보세요. 그러면 루트 폴더가 깔끔하게 정리되어 있는지, 여러 개의 일반 파일이 있는지, 아니면 예상보다 긴 경로가 있는지 확인할 수 있습니다.

tar -tf backup.tar

tar -tzf backup.tar.gz

tar -tJf backup.tar.xz

그만큼 목록에는 내용이 포함되어 있습니다. 에프 아카이브 파일을 나타냅니다. 옵션 그리고 제이 각각 gzip과 xz를 나타냅니다.

깨끗한 tar 아카이브를 생성합니다.

폴더의 압축 해제된 아카이브를 만들려면 먼저 올바른 디렉토리 레벨로 이동해야 합니다. 이는 다음과 같은 이유로 중요합니다. tar는 사용자가 지정한 경로를 기록합니다..

cd /home/nathan/projets

tar -cf site.tar 사이트

이 명령은 site.tar 파일과 함께 대지 내부에 있습니다. 나중에 압축을 풀면 폴더가 나타납니다. 대지/현재 디렉터리에 파일이 흩어져 있는 것이 아닙니다.

gzip으로 압축된 아카이브를 생성하려면 다음을 추가하세요. :

tar -czf site.tar.gz 사이트

일반적으로 더 간결하지만 속도가 느린 xz의 경우 다음을 사용하십시오. 제이 :

tar -cJf site.tar.xz 사이트

서버에서는 간단한 gzip 압축 파일을 사용하는 것을 선호할 때가 있습니다. 생성 속도가 빠르고 어디서든 읽을 수 있으며, 설정 폴더를 이동하거나 일회성 백업을 준비하는 데 충분합니다.

압축 파일에서 절대 경로를 사용하지 마십시오.

생각 없이 절대적인 경로를 기록하는 것은 나쁜 습관입니다.

tar -czf site.tar.gz /var/www/site

타르는 보통 제거하는 방법을 알고 있습니다. / 처음에는 경고 메시지가 표시되지만, 이는 깔끔한 파일 전송을 위한 최적의 방법은 아닙니다. 또한 압축 해제 후 파일이 정확히 어디에 저장될지 알 수 없다는 위험도 있습니다.

나는 사용하는 것을 선호한다 -기음 tar가 파일을 읽기 전에 정확히 어디에 위치해야 하는지 명확하게 알려주기 위해:

tar -czf /tmp/site.tar.gz -C /var/www 사이트

여기 아카이브에는 다음이 포함됩니다. 대지/, 아니다 var/www/site/읽기 쉽고, 휴대성이 뛰어나며, 다른 기기로 추출하는 것도 훨씬 간편합니다.

압축 파일을 올바른 폴더에 압축 해제하세요.

아카이브를 추출하려면 .타르 현재 폴더에:

tar -xf site.tar

gzip 압축 파일의 경우:

tar -xzf site.tar.gz

하지만 실제로는 빈 폴더를 준비하고 그 안에 파일을 압축 해제하는 것을 권장합니다. 이렇게 하면 현재 디렉토리를 어지럽히지 않고 압축 파일에 무엇이 들어 있는지 바로 확인할 수 있습니다.

mkdir -p /tmp/test-extraction

tar -xzf site.tar.gz -C /tmp/test-extraction

/tmp/test-extraction -maxdepth 2 -type f | head를 찾으세요

이 방법은 특히 다른 사람이 다운로드하거나 보낸 압축 파일에서 발생할 수 있는 여러 가지 불쾌한 상황을 방지해 줍니다.

추출하기 전에 무엇이 분쇄될지 확인하세요.

Tar 명령어는 경로가 일치하는 경우 기존 파일을 덮어쓸 수 있습니다. 테스트 환경에서는 문제가 되지 않지만, 애플리케이션 폴더에서는 심각한 골칫거리가 될 수 있습니다.

이미 파일이 있는 폴더에 압축을 풀기 전에 압축 파일의 내용을 나열한 다음 목적지 폴더의 내용과 비교하십시오.

tar -tzf site.tar.gz | 헤드

ls -la /var/www/site

파일을 섞지 않고 테스트하려면 임시 폴더를 계속 사용하세요.

rm -rf /tmp/test-extraction
mkdir -p /tmp/test-extraction

tar -xzf site.tar.gz -C /tmp/test-extraction

diff -qr /tmp/test-extraction/site /var/www/site

그만큼 차이 -qr 이것은 실제 백업 전략을 대체하는 것은 아니지만, 다양한 파일들을 명확하게 파악하는 데 도움이 됩니다.

첫 번째 폴더 전체를 다시 생성하지 않고 압축을 해제합니다.

일부 프로젝트에는 다음과 같은 유형의 루트 폴더가 포함되어 있습니다. 앱-1.4.2/만약 특정 목적지로만 콘텐츠를 가져오고 싶다면, --strip-components=1 유용할 수 있습니다.

mkdir -p /tmp/app

tar -xzf app-1.4.2.tar.gz -C /tmp/app --strip-components=1

경고: 이 옵션을 사용하기 전에 먼저 아카이브 목록을 확인하십시오. 아카이브에 예상되는 폴더 레벨이 포함되어 있지 않으면 의도한 결과와 다른 결과가 나올 수 있습니다.

아카이브에서 파일을 제외합니다

애플리케이션 폴더를 백업할 때 캐시, 대용량 로그 또는 재생성 가능한 종속 파일을 항상 포함할 필요는 없습니다. 이 옵션은 --들어오지 못하게 하다 이를 통해 아카이브를 더 깔끔하게 유지할 수 있습니다.

tar -czf site.tar.gz --exclude='site/cache' --exclude='site/logs' site

제대로 된 백업을 준비하고 있다면, 파일을 교체하지 마십시오. 제어된 rsync 동기화 수동으로 압축 파일을 생성하는 방법도 있습니다. `tar` 명령어는 폴더를 패키징, 전송 또는 고정하는 데 편리합니다. 정기적인 백업을 위해서는 파일 순환, 복원 테스트 및 별도 저장도 고려해야 합니다.

설치용 Tar.gz 파일: 압축 파일과 프로그램을 혼동하지 마세요.

파일 .tar.gz 해당 폴더에는 소프트웨어가 포함될 수 있지만, 항상 동일한 명령어로 설치되는 것은 아닙니다. 실행 가능한 바이너리 파일이 포함될 수도 있고, 스크립트가 포함될 수도 있으며, 컴파일해야 할 소스 코드가 포함될 수도 있습니다.

다운로드한 소프트웨어를 설치하는 것이 진정한 목표라면 tar.gz먼저 파일 내용을 읽어보세요. 읽어보기 또는 출판사에서 제공하는 문서를 참조하십시오. 이 경우는 가이드에서 별도로 자세히 설명했습니다. 임의의 명령어를 실행하지 않고 Linux에 tar.gz 파일을 설치하는 방법.

아카이브를 복원하기 전에

아카이브를 이동하거나 복원하기 전에 최소한 다음 사항들을 확인하십시오.

  • 정확한 내용은 tar -tf, 타르-츠프 또는 타르 -tJf ;
  • 대상 폴더 비밀 그리고 ls -la ;
  • 테스트 추출 /tmp 아카이브가 외부 소스에서 제공되는 경우;
  • 추출 후의 권리와 소유자 ls -l ;
  • 다음으로 수정된 파일 차이 -qr 기존 폴더에 덮어쓰기 복원하는 경우.

추출한 파일의 이름을 바꾸거나 이동해야 하는 경우, 올바른 방법으로 처리하세요. mv 명령잘못된 폴더에 압축을 푸는 식으로 문제를 해결해서는 안 됩니다. 잘 준비된 tar 아카이브는 시간을 절약해 줘야지, 수동으로 수정해야 할 디렉토리 구조를 남겨둬서는 안 됩니다.

더 자세한 내용을 알아보려면 다음을 참조하십시오. GNU tar 매뉴얼 그리고 페이지 man7.org의 tar(1)실용적인 가이드만큼 이해하기는 어렵지만, 고급 옵션을 사용하기 시작하면 매우 유용합니다.

sudo apt update && sudo apt upgrade