내 목표는 가능한 한 적은 단계를 거쳐 내 시스템에 helm
바이너리를 가져오는 것입니다. 문제는 파일의 하위 디렉터리에 바이너리가 포함되어 있다는 것입니다 .helm-v2.5.0-linux-amd64.tar.gz
/usr/local/bin
.tar.gz
linux-amd64
그래서 내가 할 때 :
$ wget -P /tmp https://storage.googleapis.com/kubernetes-helm/helm-v2.5.0-linux-amd64.tar.gz
$ tar -xzvf /tmp/helm-v2.5.0-linux-amd64.tar.gz -C /usr/local/bin linux-amd64/helm
내가 끝낸 /usr/local/bin/linux-amd64/helm
것은 /usr/local/bin/linux-amd64/helm
.
매개변수가 누락 되었거나 일부 정리 단계를 tar
포함해야 합니까 ?mv
답변1
다음을 사용해야 합니다 --strip-components=NUMBER
.
--strip-components=NUMBER
Strip NUMBER leading components from file names on extraction.
이는 명령이 다음과 같아야 함을 의미합니다.
tar -xzvf /tmp/helm-v2.5.0-linux-amd64.tar.gz -C /usr/local/bin --strip-components=1 linux-amd64/helm
답변2
또 다른 방법은 wget
입력을 직접 파이프 tar
하고 변환 매개변수를 사용하는 것입니다.
wget -O- https://storage.googleapis.com/kubernetes-helm/helm-v2.5.0-linux-amd64.tar.gz | tar --transform 's!linux-amd64!/usr/local/bin!' -Pxzf - linux-amd64/helm