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
Debugging di pyCharm dengan hak sudo?
Buat daftar perangkat bluetooth terdekat/dapat ditemukan, termasuk yang sudah dipasangkan, dengan Python, di Linux