![tar gz는 다른 위치의 디렉터리를 대상 디렉터리로 복사합니다.](https://linux55.com/image/185872/tar%20gz%EB%8A%94%20%EB%8B%A4%EB%A5%B8%20%EC%9C%84%EC%B9%98%EC%9D%98%20%EB%94%94%EB%A0%89%ED%84%B0%EB%A6%AC%EB%A5%BC%20%EB%8C%80%EC%83%81%20%EB%94%94%EB%A0%89%ED%84%B0%EB%A6%AC%EB%A1%9C%20%EB%B3%B5%EC%82%AC%ED%95%A9%EB%8B%88%EB%8B%A4..png)
다음과 같은 디렉토리 구조가 있습니다.
/home/
|__dirA/
|__ dir_to_zip/
|__ file1.txt
|__ file2.txt
|__ ...
|__dirB/
|__ dir_to_save_in/
|__dirC/
backup_zip_script.sh
backup_zip_script.sh
다음 명령(src)이 포함되어 있습니다.
tar -czvf /home/dirB/dir_to_save_in/backup.tar.gz /home/dirA/dir_to_zip
즉, 디렉토리를 압축하고 ~/dirA/dir_to_zip
, 압축된 아카이브를 에 저장하고 ~/dirB/dir_to_save_in/
, 에 있는 스크립트를 사용하고 싶습니다 ~/dirC/
.
위 명령은 tar
작동하지만 저장된 아카이브의 압축을 풀면 전체 디렉터리 구조가 생성됩니다.
/home/
|__dirA/
|__ dir_to_zip/
|__ file1.txt
|__ file2.txt
|__ ...
내가 원하는 경우:
dir_to_zip/
|__ file1.txt
|__ file2.txt
|__ ...
디렉터리를 다른 위치로 압축하여(전체 절대 경로를 지정해야 함) 이전의 모든 수준을 압축하지 않고 해당 디렉터리만 압축하려면 어떻게 해야 합니까?
간단히 ...을 사용할 수도 있지만 cd /home/dirA/ && tar...
다른 솔루션이 있는지 확인하고 싶습니다.
답변1
에서와 같이논평, 구현에서 지원하는 경우 -C
"대상 디렉터리로 변경" 옵션을 사용하세요.tar
tar -czvf /home/dirB/dir_to_save_in/backup.tar.gz -C /home/dirA dir_to_zip
이 옵션은 아카이브를 추출할 때도 사용할 수 있습니다.
tar -xzvf /home/dirB/dir_to_save_in/backup.tar.gz -C /home/dirA
아카이브 내용을 /home/dirA
.
답변2
디렉터리 구조가 일관적이거나 프로그래밍 방식으로 이 작업을 수행하는 경우 추출하기 전에 제거할 파일 이름 경로의 요소 수를 지정하는 --strip-components=<#>
옵션 을 사용할 수 있습니다.<#>