Diberikan .zip dengan struktur contoh berikut:
/folder1/
file1.1.txt
file1.2.txt
/folder2/
file2.1.txt
file2.2.txt
file1.txt
file2.txt
Saya harus dapat memodifikasi struktur file internal menggunakan alat baris perintah 7zip seperti:
1. Saya perlu memindahkan semua file yang ada ke folder baru di dalam arsip (katakan awalan jalur tersimpan dengan "/ myfolder")
- Saya perlu menambahkan folder lain dengan file lain (di luar pertanyaan ini, diselesaikan)
Jadi, tanpa membuka ritsleting, saya ingin memiliki struktur sebagai berikut:
/myfolder/
myfolderfile1.txt
myfolderfile2.txt
/data/
/folder1/
file1.1.txt
file1.2.txt
/folder2/
file2.1.txt
file2.2.txt
file1.txt
file2.txt
Saya tahu bagaimana menyelesaikan poin 2, tetapi poin 1 (mengubah struktur internal) adalah yang memberi saya kesulitan.
Alasan untuk persyaratan ini adalah bahwa saya bekerja dengan arsip SANGAT besar dan kompleks dengan tujuan tunggal mengatur ulang file dan menambahkan beberapa lagi dengan cara yang sama untuk semua. Tampaknya kontraproduktif untuk unzip untuk setiap file (yang bisa memakan waktu hingga satu jam) ketika saya bisa melakukan ini dengan lebih mudah.
Juga, jika ada alat lain yang dapat melakukan tugas ini dengan lebih baik (yaitu BUKAN 7zip, tetapi beberapa alat baris perintah gratis lainnya ), saya terbuka untuk saran.
Terima kasih!
PS Saya sadar mungkin ada masalah panjang jalur saat meningkatkan lintasan direktori di dekat 248 karakter, tapi itu bisa diterima.
sumber
Jawaban:
Anda dapat menggunakan
7z rn
perintah untuk memindahkan file dan folder di dalam arsip. Sayangnya itu tidak dapat memindahkan direktori root. Namun Anda dapat menggunakan skrip untuk mem-parsing output7z l
dan melakukannya.Berikut ini adalah contoh cepat dalam Python: (
7z
harus tersedia dalam PATH)sumber