
tar 아카이브를 생성하기 위해 두 가지 옵션을 결합하려고 하는데 서로 잘 작동하지 않습니다. 나는 문제가 무엇인지 모른다.
나는 사용한다:
tar -C /var/www/website html -cvzf html.tgz -T /tmp/htmllist.txt
-C 옵션만 사용하면 상대 경로 "./html/"만 포함하고 해당 폴더 내의 모든 파일을 포함하는 tar 아카이브가 생성됩니다. 나는 이것을 원하지 않습니다.
그런 다음 -T 옵션만 사용하면 필요한 파일만 포함된 tar 아카이브가 생성되지만 경로는 절대 "/var/www/website/html/whatever.html"입니다. 나도 이것을 원하지 않습니다.
둘의 조합을 원하지만 어떻게든 작동하지 않습니다.
폴더 구조는 다음과 같습니다.
/var/www/website/html/
- 많은 .html 파일
/tmp/htmllist.txt 폴더에는 다음과 같은 줄이 포함되어 있습니다.
- /var/www/website/html/file1.html
- /var/www/website/html/file5.html
- /var/www/website/html/file32.html
등등.
이 문제를 어떻게 해결합니까?
답변1
Tar를 사용할 때는 반대 방향으로 작동합니다 -T
. 전체 경로를 포함하여 파일을 보관합니다. 경로를 원하지 않으면 추출할 때 경로를 제거하십시오. 예를 들어 다음과 같습니다.
타르볼 생성
tar -C /var/www/website html -cvzf html.tgz -T /tmp/htmllist.txt
타르볼 추출
tar -xvf html.tgz --strip-path=3
이렇게 하면 출력 경로(예: /var/www/website)에서 세 가지 구성 요소가 제거됩니다.