GNU/Linux >> Znalost Linux >  >> Linux

Tar:Extrahovat jeden soubor do adresáře bez vytváření podsložek?

Mým cílem je získat helm binární z helm-v2.5.0-linux-amd64.tar.gz do mého /usr/local/bin v co nejmenším počtu kroků. Problém je v tom, že .tar.gz soubor obsahuje binární soubor v linux-amd64 podadresář.

Takže když to udělám:

$ 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

Skončím s /usr/local/bin/linux-amd64/helm místo /usr/local/bin/linux-amd64/helm .

Existuje tar chybí mi parametr nebo musím zahrnout nějaký mv a kroky čištění?

Přijatá odpověď:

Musíte použít --strip-components=NUMBER :

--strip-components=NUMBER
          Strip NUMBER leading components from file names on extraction.

což znamená, že váš příkaz by měl vypadat takto:

tar -xzvf /tmp/helm-v2.5.0-linux-amd64.tar.gz -C /usr/local/bin --strip-components=1 linux-amd64/helm

Linux
  1. Jak extrahovat soubory .gz a .tar.gz v Linuxu

  2. Vyvarovat se při vytváření Tar.gz souboru navíc?

  3. Jak extrahovat nebo rozbalit soubor tar.xz v Linuxu

  1. Vyloučení adresáře při vytváření souboru .tar.gz

  2. Jak extrahovat soubor filename.tar.gz

  3. extrahujte jeden soubor z velkého souboru tgz

  1. Jak extrahovat soubory Tar do konkrétního nebo jiného adresáře v Linuxu

  2. Otevření souboru .tar.gz jediným příkazem

  3. Aktualizace jednoho souboru v komprimovaném taru