2013-05-23 33 views
13

Tôi muốn thêm tệp vào tệp zip, có tên khác và tránh tạo tệp mới với tên mong muốn. Ví dụ, tôi muốn thêm tập tin myfile.txt vào một zip, nhưng đổi tên nó thành myfile2.txt.Lệnh zip Linux: thêm tệp có tên khác

Cảm ơn

+0

Không hiểu lý do tại sao nó là offtopic – pihentagy

+3

Tôi cũng bỏ phiếu cho rằng điều này không ngoại lệ ở đây. 'zip' là một công cụ phát triển chuẩn để gói các bản phát hành. Và thay đổi tên của các tệp được phân phối khi gộp chúng trong một 'Makefile' có thể được coi là một thực tế rất phổ biến. Do đó nếu có một giải pháp không bao gồm các bản sao vào các tệp/thư mục tạm thời, đây là thành ngữ rất được hoan nghênh để sử dụng để giải quyết một tác vụ lập trình khá phổ biến. – Tino

+0

Bỏ phiếu để đóng cửa dưới dạng [yêu cầu công việc] (https://meta.stackoverflow.com/questions/274630/should-we-add-a-do-my-work-for-me-close-reason). –

Trả lời

20

Bạn có thể sử dụng zipnote đi kèm với gói zip.

Đầu tiên xây dựng các kho lưu trữ zip có chứa các tập tin myfile.txt:

zip archive.zip myfile.txt 

Sau đó đổi tên myfile.txt bên trong các kho lưu trữ zip với:

printf "@ myfile.txt\[email protected]=myfile2.txt\n" | zipnote -w archive.zip 

(Nhờ Jens cho thấy printf thay vì echo -e.)

Giải thích ngắn về "@ myfile.txt\[email protected]=myfile2.txt\n":

Từ zipnote -h: "@ tên" có thể được theo sau bởi một "@ = newname" dòng để thay đổi tên

\n tách hai lệnh.

+1

Nitor nhỏ: 'echo -e' là một SysVism không thể chuyển đổi. Tôi muốn sử dụng 'printf" @ myfile.txt \ [email protected]=myfile2.txt \ n "| ... '. – Jens

+0

Điểm tốt. Đã sửa đổi câu trả lời của tôi. – mkrnr

+0

Tôi không biết tại sao nhưng tôi có thể làm cho nó hoạt động. Xem câu hỏi của tôi - http://stackoverflow.com/questions/22974139/how-to-use-zipnote-command – martin

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