Cảnh báo zip: tên không khớp với tên trong khi nén thư mục


19

Tôi có một thư mục khoảng 180 GB, tôi cần phải nén nó như sau:

zip -p password /Volumes/GGZ/faster/mybigfolder/* /Volumes/Storage\ 4/archive.zip

Nhưng nó nói:

    zip warning: name not matched: /Volumes/Storage 4/archive.zip

Vậy làm thế nào để tôi làm điều này? Một lưu ý khác, archive.zipkhông tồn tại, nhưng tôi đang cố gắng tạo ra nó.


Hãy thửzip -P password /Volumes/Storage\ 4/archive -p /Volumes/GGZ/faster/mybigfolder/*
Costas

Câu trả lời:


7

Lệnh của bạn phải là:

zip -p password -r /Volumes/Storage\ 4/archive.zip /Volumes/GGZ/faster/mybigfolder/

Trang hướng dẫn ( man zip), hiển thị bạn nên có:

zip <options> <archive> <inpath...>

Ngoài ra, -rtùy chọn đệ quy được khuyến nghị cao trên toàn cầu shell "*" cho việc này.


Một cạm bẫy liên quan khác là một lỗi đánh máy đơn giản (ví dụ: nếu bạn đã sao chép lệnh từ tập lệnh này sang tập lệnh khác). Ví dụ, thay vì winzip32.exe -a -r %DEST_PATH%\Output.zip %DEST_PATH%\Output.zip %SOURCE_PATH%\*.*, bạn vô tình gõ winzip32.exe -a -r %DEST_PATH%\Output.zip %DEST_PATH%\Output.zip %SOURCE_PATH%\*.*. Lưu ý thêm Output.zip... dễ dàng thực hiện!
AlainD

23

Lỗi này cũng có thể được gây ra bởi các liên kết tượng trưng trong cây thư mục bị nén.

Nếu chúng không có đích chính xác (có lẽ vì thư mục đã được di chuyển hoặc sao chép từ nơi khác), zip sẽ cố gắng theo liên kết tượng trưng để lưu trữ tệp đích.

Bạn có thể tránh điều này (và cũng có được hiệu ứng mà bạn có thể muốn bằng mọi cách, đó là không lưu trữ nhiều bản sao của tệp) bằng cách sử dụng tùy chọn -y(hoặc --symlinks).


0

Sử dụng cờ đệ quy ( -r) thay vì global ( *) để khớp các tệp cần nén. Ngoài ra, hãy xác định tên lưu trữ trước rồi đưa ra danh sách các tệp:

zip -p password -r /Volumes/Storage\ 4/archive.zip /Volumes/GGZ/faster/mybigfolder/

0

Trước đây tôi cũng đã gặp lỗi này vì một lý do khác mà công -rtắc không thể khắc phục. Điều gì đã xảy ra là tôi dựa trên các tệp để thêm vào zip với mã / biến bash sau đây

somevar=`ls -1 somedir`

Vấn đề là lschỉ liệt kê các tệp như trong thư mục hiện tại và đây là lý do tại sao zipkhiếu nại (về cơ bản các tệp không tồn tại để nén bởi vì nó được yêu cầu tìm trong thư mục sai / hiện tại).

Nếu đây là vấn đề của bạn, bạn có thể sửa nó như vậy:

somevar=`ls -1d somedir/*`

Như bạn có thể thấy tôi đã sử dụng -dkhóa chuyển đổi và /*ở cuối tên thư mục và sau đó các tệp đã được thêm thành công.

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.