tar: извлечение одного файла в каталог без создания подкаталогов

GNU parallel

Он позволяет использовать простые однострочные команды с сохраненными настройками, поэтому вы можете создать профиль "prod", который будет содержать список серверов и общие переключатели. Затем просто добавьте нужную команду, и все готово. Он также может копировать файлы на сервер и автоматически удалять их в конце, что довольно удобно для больших скриптов. Кроме того, он очень быстрый.

Единственная проблема в том, что у него очень много опций ;) Но документация также содержит много примеров, так что вы можете просто посмотреть на них в начале.

4
19.07.2017, 00:03
2 ответа

Вам нужно использовать--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
8
27.01.2020, 20:50

Другой подход, передача 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
2
27.01.2020, 20:50

Теги

Похожие вопросы