Xây dựng kho lưu trữ Zip, trường hợp đặc biệt


1

Làm cách nào tôi có thể tạo một zip trong một bản phân phối linux và
- chỉ giữ đường dẫn tương đối đến một thư mục
- đặt một số tệp vào một thư mục riêng bên trong zip

Tôi cần phải làm điều này trong một tập lệnh bash vì vậy nếu tôi chỉ sử dụng đường dẫn tuyệt đối thì toàn bộ đường dẫn sẽ nằm trong zip.

Thí dụ

/home/user/folder/1.txt
/home/user/folder/2.txt

Đầu ra cần nó:

test.zip
folder/1.txt
folder/secondfolder/2.txt

1
Làm thế nào để đầu ra liên quan đến ví dụ?
Ignacio Vazquez-Abrams

Điều này có thể phù hợp hơn với ServerFault không? Nó có vẻ giống như một câu hỏi sysadmin hơn là một câu hỏi lập trình với tôi.
ssokolow

Câu trả lời:



0

find . ! -name "*.zip" -type f -print | zip test -@làm những gì bạn muốn?


zipcó khả năng tự đệ quy một con đường.
Ignacio Vazquez-Abrams

Tôi cập nhật câu hỏi. Đây không phải là những gì tôi cần.
danidacar

@user, tôi đã cập nhật câu hỏi - thêm "cần nó" hầu như không phải là một bản cập nhật! (Ngoài ra, vui lòng đến với một tiêu đề tốt hơn?)
Arjan

@Ignacio và Charles, vậy có lẽ zip -r -x *.zipsẽ đạt được điều tương tự?
Arjan

0

Tại sao bạn không tạo cấu trúc thư mục bạn muốn và sau đó nén nó và sau đó xóa nó?

cd ~/
mkdir backup1
cp /var/www/test/* backup1/
zip -r output.zip ~/backup1
rm -r backup1

Bởi vì tôi đã từng chỉ huy sự linh hoạt của dòng và tôi nghĩ rằng tôi đang thiếu một cái gì đó. Mẹo tốt mặc dù.
danidacar

man zip dường như không cho phép bạn tạo thư mục. Nếu bạn muốn làm trong một dòng; Chỉ cần cp / var / www / test / * backup1 / && zip -rm output.zip backup1 / (m để di chuyển các tệp) là không phải có tính năng phình to; không có lý do thực sự nào để cho phép zip tạo các tệp / thư mục không tồn tại, khi bạn có thể làm điều đó hoàn toàn tốt với các lệnh khác.

0

$ ln -s / var / www / test backup1
$ zip -r backup1 -j backup1 / *

Có thể chấp nhận?


Bạn đang làm hỏng các thư mục và tạo một liên kết sim mới trong quá trình .. Tôi không nghĩ nó tối ưu. Dù sao đi nữa cũng xin cám ơn.
danidacar
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.