Zip nội dung của một thư mục mà không bao gồm chính thư mục


77

Tôi có một thư mục được gọi là foldernhư thế này:

folder
      -> root_folder
                    -> some files

Tôi muốn nén thư mục này vào zipped_dir, tôi đã thử:

zip -r zipped_dir.zip folder/*

Nhưng điều này tạo ra một ZIP trông như thế này:

zipped_dir
          -> folder
                   -> root_folder
                                 -> some files

nói cách khác, nó bao gồm cả thư mục có nội dung tôi muốn nén. Làm thế nào tôi có thể loại trừ thư mục mẹ này khỏi ZIP, mà không di chuyển bất cứ thứ gì?

IE Tôi muốn kết quả cuối cùng này:

zipped_dir
          -> root_folder
                        -> some files

Câu trả lời:


75

Hãy thử sử dụng lệnh này (bạn sẽ có được ý tưởng)

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

Có thể có cách khác, nhưng đây là cách nhanh nhất và đơn giản nhất đối với tôi :)


2
Điều này hoạt động hoàn hảo làm thủ thuật đó. lưu ý: nó sẽ làm a chroot .
loretoparisi

tương đương:zip -r zipped_dir.zip folder/*
Tobias Kolb

5
@TobiasKolb, có thể bạn không đọc câu hỏi. OP không muốn có thư mục vào đường dẫn được lưu trữ trong zip.
Romeo Ninov

2
Có vẻ là cách duy nhất để làm
Robert

1
@PabloDiaz, trong ví dụ của tôi cd -sẽ thực hiện công việc (chỉ một lệnh) :) Hoặccd ..
Romeo Ninov

30

Sử dụng -j; ví dụ:zip -r -j zipped_dir.zip folder/*

Nó sẽ không nén 'root_folder'.


7
Tôi gặp lỗi với cái này nếu tôi có hai tệp cùng tên.
Chris

11
OP có lẽ chỉ muốn xóa thư mục mẹ chứ không phải tất cả chúng.
tokland

Vẫn tạo các thư mục zip -r -j package.zip ./dist/static/*tạo cấu trúc lưu trữdist/static/myfiels
deathangel908

4
nó làm phẳng các tập tin thư mục con của nó là tốt.
Sumit Ramteke

3
các -jtùy chọn loại bỏ tất cả các thông tin thư mục và chỉ lưu các tập tin. Đó là, để lưu trữ tất cả các tệp trong một thư mục theo cách "phẳng".
Robert

5
zip -r -D zipped.zip *

-D hướng dẫn zip để không tạo thư mục.


0

Đây là những gì làm việc cho tôi:

7z a zipped.zip ./rootDir/*

Nó sẽ tạo ra một zipkho lưu trữ với root: bất kỳ tập tin / thư mục bên trong rootDir.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.