Tento příkaz používám na 5 GB archive
tar -zxvf archive.tar.gz /folder/in/archive
je to správný způsob? Zdá se, že to trvá věčně bez výstupu z příkazového řádku …
Komentáře
Odpovědět
tar ukládá relativní cesty ve výchozím nastavení . GNU tar dokonce říká, že pokud se pokusíte uložit absolutní cestu:
tar -cf foo.tar /home/foo tar: Removing leading `/" from member names
Pokud potřebujete extrahovat konkrétní složku, podívejte se, co obsahuje soubor tar:
tar -tvf foo.tar
A všimněte si přesného názvu souboru. V případě mého foo.tar souboru bych mohl extrahujte /home/foo/bar slovy:
tar -xvf foo.tar home/foo/bar # Note: no leading slash
Takže ne, způsob, jakým jste zveřejnili, není (nutně) správný způsob, jak to udělat. Musíte vynechat úvodní lomítko. Pokud chcete simulovat absolutní cesty, proveďte nejprve cd / a ujistěte se, že jste superuživatelem. Stejné je to také:
tar -C / -xvf foo.tar home/foo/bar # -C is the ‘change directory’ option
Existují velmi zjevné a dobré důvody, proč tar převádí cesty na relativní. Jedním z nich je schopnost obnovit archiv na jiných místech, než je jeho původní zdroj. jiné je zabezpečení. Můžete extrahovat archiv, očekávat, že se jeho soubory objeví ve vašem aktuálním pracovním adresáři, a místo toho omylem přepsat systémové soubory (nebo vlastní práci) jinde.
Poznámka: pokud použijete -P možnost, tar bude archivovat absolutní cesty. Před extrahováním se tedy vždy vyplatí zkontrolovat obsah velkých archivů.
Komentáře
-
--strip-components=Nzde může být pro některé užitečné. - v mém případě bylo nutné namísto iv id = „23 napsat
./foldername/16b5075f „>
, myslím, že to bylo proto, že když jsem vytvořil tar, vytvořil jsem ho pomocí tar -cvf santi.tar ./* a když jsem " uvedené " tar to je to, co řekl drwxr-xr-x santi/santi 0 2016-04-11 09:42 ./foldername/
.gz? -xvf na -xzvf (přidání -z) a samozřejmě foo.tar až foo.tar.gz nebo jakkoli jiný název vašeho archivu. Totéž platí pro -j (bz2) a pro některé novější verze -J (xz). Jinak funguje také potrubí jako zcat foo.tar.gz | tar -xvf - …. v ve všech příkladech. Např. tar -tf foo.tar a tar -xf foo.tar ....
tarjecat /proc/$(pidof tar)/fdinfo/0(pokud máte více než jeden, upravte příkaztarproces běží).folder/folder2/nebude fungovat '.