GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana cara mengekstrak file tanpa struktur folder menggunakan tar

Berdasarkan @ford jawabannya. Yang ini akan mengekstraknya ke folder my_dirname. Sehingga kami dapat menghapus folder kosong dengan benar tanpa terpengaruh file yang ada saat ini.

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

Ini hampir mungkin dengan tar saja, menggunakan flag --transform, kecuali bahwa tidak ada cara untuk menghapus direktori yang tersisa sejauh yang saya tahu.

Ini akan meratakan seluruh arsip:

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

Outputnya adalah

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

Sayangnya, Anda perlu menghapus direktori dengan perintah lain.


Periksa versi tar mis.

$ tar --version

Jika versi >= dari tar-1.14.90 gunakan --strip-components

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

selain itu gunakan --strip-path

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

Anda dapat menggunakan --strip-components opsi tar.

 --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.

Saya membuat file tar dengan struktur yang mirip dengan milik Anda:

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

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

Kemudian ekstrak dengan melakukan:

$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. Cara mengekstrak file .gz dan .tar.gz di Linux

  2. Cara Kompres dan Ekstrak File dan Direktori di Linux Menggunakan gzip dan bzip2

  3. Bagaimana cara menggabungkan dua file menggunakan AWK?

  1. Cara Mengekstrak atau Mengunzip File tar.xz di Linux

  2. Bagaimana Cara Mengompres dan Mengekstrak File Menggunakan Perintah tar di Linux?

  3. Cara mengekstrak file nama file.tar.gz

  1. Cara Mengekstrak File tar.gz di Linux dengan Menggunakan Command Line

  2. Cara tar (kompres) file, tidak termasuk file atau direktori tertentu

  3. Ekstrak file tertentu dalam arsip tar menggunakan wildcard