GNU/Linux >> Znalost Linux >  >> Linux

Jak extrahovat soubory bez struktury složek pomocí tar

Na základě @ford odpověď uživatele. Tento jej rozbalí do složky my_dirname. Abychom mohli řádně vymazat prázdné složky, aniž bychom ovlivnili aktuálně existující soubory.

tar xzf images.tgz --transform='s/.*\///' -C my_dirname
find my_dirname -type d -empty -delete

Toto je téměř možné pouze s tar, pomocí parametru --transform, kromě toho, že pokud vím, neexistuje způsob, jak odstranit zbývající adresáře.

Tím se celý archiv srovná:

tar xzf images.tgz --transform='s/.*\///'

Výstup bude

folder1/
folder2/
folder3/
img.gif
img2.gif
img3.gif

Adresáře pak budete muset bohužel smazat jiným příkazem.


Zkontrolujte verzi tar, např.

$ tar --version

Pokud je verze >= než tar-1.14.90 použijte --strip-components

tar xvzf web.dirs.tar.gz -C /srv/www --strip-components 2

jinak použijte --strip-path

tar xvzf web.dirs.tar.gz -C /srv/www --strip-path 2

Můžete použít --strip-components možnost dehtu.

 --strip-components count
         (x mode only) Remove the specified number of leading path ele-
         ments.  Pathnames with fewer elements will be silently skipped.
         Note that the pathname is edited after checking inclusion/exclu-
         sion patterns but before security checks.

Vytvořím soubor tar s podobnou strukturou jako vy:

$tar -tf tarfolder.tar
tarfolder/
tarfolder/file.a
tarfolder/file.b

$ls -la file.*
ls: file.*: No such file or directory

Poté extrahujte takto:

$tar -xf tarfolder.tar --strip-components 1
$ls -la file.*
-rw-r--r--  1 ericgorr  wheel  0 Jan 12 12:33 file.a
-rw-r--r--  1 ericgorr  wheel  0 Jan 12 12:33 file.b

Linux
  1. Jak tarovat (komprimovat) soubory, s výjimkou určitých souborů nebo adresářů

  2. Jak komprimovat a extrahovat soubory pomocí příkazu tar v systému Linux?

  3. Jak sloučit dva soubory pomocí AWK?

  1. Jak extrahovat soubor tar.gz v Linuxu pomocí příkazového řádku

  2. Jak extrahovat soubory .gz a .tar.gz v Linuxu

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

  1. Jak komprimovat a extrahovat soubory a adresáře v Linuxu pomocí gzip a bzip2

  2. Jak extrahovat soubor filename.tar.gz

  3. Extrahujte konkrétní soubory v archivu tar pomocí zástupného znaku