Apakah ada cara untuk mengonversi zip
arsip ke tar
arsip tanpa mengekstraksi ke direktori sementara terlebih dahulu? (dan tanpa menulis implementasi saya sendiri tar
atau unzip
)
shell-script
tar
zip
pengguna253751
sumber
sumber
Jawaban:
Ini sekarang tersedia sebagai perintah yang dapat diinstal dari PyPI, lihat akhir posting ini.
Saya tidak tahu ada utilitas "standar" yang melakukannya, tetapi ketika saya membutuhkan fungsionalitas ini, saya menulis skrip Python berikut untuk beralih dari ZIP ke Bzip2 arsip tar terkompresi tanpa mengekstraksi apa pun ke disk terlebih dahulu:
Hanya menyimpannya
zip2tar
dan membuatnya dapat dieksekusi atau menyimpannyazip2tar.py
dan berjalanpython zip2tar.py
. Berikan nama file ZIP sebagai argumen untuk skrip, nama file outputxyz.zip
akanxyz.tar.bz2
.Output terkompresi Bzip2 biasanya jauh lebih kecil daripada file zip karena yang terakhir tidak menggunakan pola kompresi lebih dari beberapa file, tetapi ada juga lebih sedikit peluang untuk memulihkan file kemudian jika ada sesuatu dalam file Bzip2 yang salah.
Jika Anda tidak ingin output dikompresi, hapus
:bz2
dan.bz2
dari kode.Jika Anda telah
pip
menginstal di lingkungan python3, Anda dapat melakukan:untuk mendapatkan
zip2tar
utilitas commandline melakukan hal di atas (penafian: Saya adalah pembuat paket itu).sumber
time
kekuranganimport
.time
komentarnya, saya memperbarui jawabannyaThe
tar
perintah berhubungan dengan file sistem. Inputnya adalah daftar file yang kemudian dibaca dari sistem file (termasuk banyak metadata). Anda perlu mempresentasikan file zip sebagai sistem file agartar
perintah membacanya.Sistem File Virtual - AVFS akan memungkinkan program apa pun untuk melihat ke dalam file yang diarsipkan atau dikompresi melalui antarmuka sistem file standar melalui FUSE .
Ada beberapa informasi terperinci dalam readfs-fuse readme dan beberapa distribusi memiliki paket untuk itu.
Satu Anda telah menginstal AVFS, maka Anda bisa
AVFS akan mengisi semua informasi untuk sistem file yang hilang dari zip, seperti kepemilikan file, tar yang akan dijemput.
sumber
Berikut cuplikan kecil yang mengonversi arsip ZIP menjadi arsip TAR.GZ yang sesuai OnTheFly.
Ubah arsip ZIP menjadi arsip TAR dengan cepat
Sumber
sumber