![서로 다른 소스의 파일을 패키징하기 위해 공통 상위 폴더를 지정하는 방법](https://linux55.com/image/64887/%EC%84%9C%EB%A1%9C%20%EB%8B%A4%EB%A5%B8%20%EC%86%8C%EC%8A%A4%EC%9D%98%20%ED%8C%8C%EC%9D%BC%EC%9D%84%20%ED%8C%A8%ED%82%A4%EC%A7%95%ED%95%98%EA%B8%B0%20%EC%9C%84%ED%95%B4%20%EA%B3%B5%ED%86%B5%20%EC%83%81%EC%9C%84%20%ED%8F%B4%EB%8D%94%EB%A5%BC%20%EC%A7%80%EC%A0%95%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95.png)
현재 실행 중인 명령은 다음과 같습니다.
tar --directory=/Users/joe/images -czvf images.tgz dir1/image1.jpg dir2/image2.jpg
보시다시피 이는 /Users/joe/images
루트 디렉터리를 사용하고 해당 루트 아래에 있는 다른 디렉터리의 이미지를 포함합니다.
그러나 tar 내의 공통 상위 항목 아래에 이러한 이미지를 포함할 수 있어야 합니다. 그러면 tar 파일을 열면 다음 디렉터리 구조가 표시됩니다.
- 공통/image1.jpg
- 공통/image2.jpg
파일이 위치해야 하는 "상위" 디렉터리를 지정할 수 있는 이 명령을 실행하는 플래그나 방법이 있습니까?
답변1
--directory
GNU 또는 최신 BSD tar를 사용하는 것이 좋습니다 .
GNU 사용 tar
:
tar --directory=/Users/joe/images --transform='s|[^/]*|common|' \
-czvf images.tgz dir1/image1.jpg dir2/image2.jpg
BSD tar 사용:
tar --directory=/Users/joe/images -s'|[^/]*|common|' \
-czvf images.tgz dir1/image1.jpg dir2/image2.jpg
아이디어는 동일합니다. 부팅 경로 구성 요소를 common
.
이 교체는 그 안에 있는 심볼릭 링크 대상에서도 작동합니다( S
교체 플래그를 사용하여 비활성화할 수 있음).