Saya perlu membuat file zip menggunakan perintah ini:
zip /dir/to/file/newZip /data/to/zip/data.txt
Ini berfungsi, tetapi file zip yang dibuat membuat struktur direktori yang meniru direktori ke file mentah. Banyak folder ekstra yang tidak saya butuhkan.
Saya tidak menemukan jawaban sekilas ke halaman manual atau pencarian Google.
Jawaban:
Anda bisa menggunakannya
-j
.sumber
-j
tidak berfungsi untuk direktori Anda (bersama-sama dengan-r
) checkout jawaban iniMenggunakan
-j
tidak akan bekerja bersama dengan-r
opsi.Jadi solusi untuknya adalah:
Atau versi in-line
Anda dapat mengarahkan output ke
/dev/null
jika Anda tidak ingincd -
output muncul di layarsumber
cd path/to/parent/dir/ && zip -r ../../../../name.zip ./* && cd -
cd path/to/parent/dir/
Anda dapat menghitung jumlah titik ganda../
dengan mudah.Gunakan
-j
opsi:sumber
Agak terkait - Saya sedang mencari solusi untuk melakukan hal yang sama untuk direktori. Sayangnya
-j
opsi ini tidak berfungsi untuk ini :(Berikut ini adalah solusi yang bagus untuk menyelesaikannya: /superuser/119649/avoid-unwanted-path-in-zip-file
sumber
Atau, Anda dapat membuat tautan simbolis sementara ke file Anda:
Ini juga berfungsi untuk direktori.
sumber
Simpan direktori induk agar
unzip
tidak memuntahkan file di mana-manaSaat zip direktori, menyimpan direktori induk dalam arsip akan membantu menghindari membuang sampah sembarangan direktori saat ini ketika Anda nanti unzip file arsip
Jadi untuk menghindari mempertahankan semua jalur, dan karena Anda tidak bisa menggunakan -j dan -r bersama-sama (Anda akan mendapatkan kesalahan), Anda bisa melakukan ini sebagai gantinya:
The
../$(basename $PWD)
adalah keajaiban yang mempertahankan direktori induk.Jadi sekarang
unzip my.zip
akan memberikan folder yang berisi semua file Anda:Alih-alih mengotori direktori saat ini dengan file yang tidak di-zip:
sumber
Cukup gunakan
-jrm
opsi untuk menghapus struktur file dan direktorisumber