2009-06-17 39 views
5

Các zip chương trình tiện ích, khi gọi như zip -r out.zip base/* trên cấu trúc thư mục nàyLàm cách nào để thêm tệp và thư mục vào tệp zip mà không có thư mục gốc?

. 
./base 
./base/b 
./base/b/c 
./base/d 

tạo ra kết quả sau

adding: base/b/ (stored 0%) 
    adding: base/b/c (stored 0%) 
    adding: base/d (stored 0%) 

Tôi muốn để có được một tập tin chứa dữ liệu, kể từ đầu ra sau đây

adding: b/ (stored 0%) 
    adding: b/c (stored 0%) 
    adding: d (stored 0%) 

Tôi mong đợi tùy chọn -j để trợ giúp tôi, nhưng không: nó hoàn toàn làm phẳng thư mục stru cture. Tại thời điểm này, giải pháp duy nhất tôi tìm thấy là cd vào cơ sở và gọi zip từ đây, nhưng tôi đã tự hỏi nếu có một powerwitch tôi không nhận ra như vậy trong tài liệu.

+0

Bạn đang sử dụng tiện ích hoặc hệ điều hành nào? – Pedro

+0

Tương tự như http://stackoverflow.com/questions/3630167/zip-command-without-including-the-compressed-dir-itself – ryenus

Trả lời

4

Tôi hiểu rằng bạn không muốn cd, nhưng ...

Nếu vẫn thất bại và bạn đang hy vọng để giữ cuộc gọi của bạn sang định dạng zip xuống một dòng, bạn có thể chuỗi các cuộc gọi và sử dụng một người họ hàng đường dẫn đến sản lượng zip trong thư mục gốc:

Đối với Windows:

cd base & zip -r ..\out.zip * & cd ..

Đối với Linux/Unix:

cd base ; zip -r ../out.zip * ; cd ..

Các vấn đề liên quan