Zip isi folder tanpa menyertakan folder itu sendiri

78

Saya memiliki direktori bernama folderyang terlihat seperti ini:

folder
      -> root_folder
                    -> some files

Saya ingin memasukkan direktori ini ke dalam zipped_dir, saya mencoba:

zip -r zipped_dir.zip folder/*

Tapi ini menghasilkan ZIP yang terlihat seperti ini:

zipped_dir
          -> folder
                   -> root_folder
                                 -> some files

dengan kata lain, ini termasuk direktori yang isinya ingin saya zip. Bagaimana saya bisa mengecualikan direktori induk ini dari ZIP, tanpa memindahkan apa pun?

Yaitu saya ingin hasil akhir ini:

zipped_dir
          -> root_folder
                        -> some files
Berair
sumber

Jawaban:

75

Coba gunakan perintah ini (Anda akan mendapatkan ide)

cd folder; zip -r ../zipped_dir.zip *

Mungkin ada cara lain, tapi ini yang tercepat dan paling sederhana untuk saya :)

Romeo Ninov
sumber
2
ini berfungsi dengan baik melakukan trik itu. Catatan: itu akan melakukan chroot .
loretoparisi
setara:zip -r zipped_dir.zip folder/*
Tobias Kolb
5
@TobiasKolb, mungkin Anda tidak membaca pertanyaannya. OP tidak ingin memiliki folder di jalur tersimpan di zip.
Romeo Ninov
2
Tampaknya satu-satunya cara untuk melakukannya
Robert
1
@PabloDiaz, dalam contoh saya cd -akan melakukan pekerjaan (hanya satu perintah) :) Ataucd ..
Romeo Ninov
30

Gunakan -j; sebagai contoh:zip -r -j zipped_dir.zip folder/*

Itu tidak akan zip 'root_folder'.

AB
sumber
7
Saya mendapatkan kesalahan dengan yang satu ini jika saya memiliki dua file dengan nama yang sama.
Chris
11
OP mungkin hanya menginginkan direktori induknya dihapus, tidak semuanya.
tokland
Masih membuat direktori zip -r -j package.zip ./dist/static/*membuat struktur arsipdist/static/myfiels
deathangel908
4
itu meratakan file direktori anak juga.
Sumit Ramteke
3
yang -jpilihan menghilangkan semua info direktori dan hanya menyimpan file. Yaitu, untuk menyimpan semua file di bawah satu direktori dengan cara "datar".
Robert
5
zip -r -D zipped.zip *

-D menginstruksikan zip untuk tidak membuat direktori.

L. Austin
sumber
0

Inilah yang bekerja untuk saya:

7z a zipped.zip ./rootDir/*

Ini akan membuat ziparsip dengan root: semua file / direktori di dalamnya rootDir.

Marinos An
sumber