Apakah ada opsi pada perintah zip linux sehingga saya bisa mengkodekan direktori targetnya. Sebagai contoh, saya ingin meng-zip file ./mydir ke myzipfile.zip tapi saya ingin perintah unzip untuk membuat direktori spesifik "projx" dan memperluas file yang berada di bawah ./mydir ke sana.
zip -r myzipfile.zip mydir (-option to expand into 'projx' when unzipped? )
Jawaban:
Tidak ada opsi seperti itu, setidaknya tidak untuk Info-ZIP. Anda harus membuat direktori projx sendiri, memindahkan / menyalin file Anda ke dalamnya dan kemudian meneruskannya ke
zip
.Jika direktori sudah ada maka hanya lulus pilihan
-d
untukunzip
menentukan direktori target untuk ekstraksi.sumber
Untuk melakukan itu ada cara lain. Anda dapat meratakan seluruh isi file zip menggunakan metode berikut. Direktori target adalah " projx " dan jalankan perintah berikut.
Opsi -j disebut "jalur sampah" dan hanya membuang setiap file ke direktori saat ini alih-alih mengekstraksi struktur direktori apa pun.
sumber
Saya tidak tahu tentang opsi baris perintah tertentu, tetapi Anda dapat menggunakan perintah berikut untuk mencapai tujuan Anda:
Perintah pertama membuat tautan simbolis, sehingga Anda dapat mengakses file
mydir
juga melaluiprojx
. Kemudian menggunakanInfo-ZIP
(diuji dengan versi 2.31) tautan simbolik ditereferensi (ini adalah default, kecuali jika Anda tentukan-y
) dan file disimpan secara rekursif:Anda lihat, nama folder disimpan dalam file juga - jadi setelah ekstraksi direktori
projx
dibuat.Namun, saya tidak bisa memikirkan kemungkinan untuk menyimpan jalur absolut, tetapi ini adalah ide yang buruk.
sumber
-jj
. Pada sistem operasi lain hanya opsi-j
yang didukung (dan-jj
diartikan sebagai-j
) yang menghilangkan setiap jalur utama dan dengan demikian mengarah ke sebaliknya (desain yang sangat pintar ...).