Jadi jika saya mengerti dengan benar, Anda mencoba mengarsipkan file & folder di folder tertentu tetapi tanpa menyertakan folder root.
Contoh:
/test/test.txt
/test/test2.txt
di mana test.txt dan test2.txt akan disimpan di zip, tetapi tidak / test /
Anda bisa cd ke direktori / test / lalu jalankan sesuatu seperti,
zip -r filename.zip ./*
Yang akan membuat arsip di folder yang sama bernama filename.zip. Atau jika menjalankannya dari luar folder yang bisa Anda jalankan,
zip -r test.zip test/*
/ * Adalah bagian yang hanya mencakup konten folder, bukan seluruh folder.
Sunting: OP ingin beberapa ritsleting, solusi akhirnya menjadi sedikit peretasan, saya ingin tahu apakah ada cara yang lebih baik untuk melakukan ini.
for d in */ ; do base=$(basename "$d") ; cd $base ; zip -r $base * ; mv "${base}.zip" .. ; cd .. ; done;
for d in */ ; do base=$(basename "$d") ; zip -rj "${base}.zip" "$d" ; done;
zip -r test.zip test/*
tidak bekerja. Adakah cara yang benar untuk mencapai ini dari luar direktori?Gunakan opsi
-j
atau--junk-paths
dalam perintah zip Anda.Dari halaman manual zip :
sumber
Bagaimana dengan perintah ini?
sumber
cd
. Berharap ada cara untuk menentukan jalur tersimpan lebih tepat.Semoga ini membantu.
Itu membuat shell utama dalam direktori yang sama dan hanya mengubah direktori sub-shell yang mati setelah perintah.
sumber