Lệnh giải nén Linux: Tùy chọn để ghi đè?


173

Tôi đang viết một tập lệnh shell giải nén tệp ZIP thành một hệ thống phân cấp các tệp hiện có, có khả năng ghi đè lên một số tệp.

Vấn đề là lệnh giải nén yêu cầu xác nhận:
replace jsp/extension/add-aspect.jsp? [y]es, [n]o, [A]ll, [N]one, [r]ename: y

Có một tùy chọn để buộc giải nén để ghi đè lên các tập tin?

Câu trả lời:


266

Theo http://www.manpagez.com/man/1/unzip/, bạn có thể sử dụng -otùy chọn để ghi đè lên các tệp:

unzip -o /path/to/archive.zip

Lưu ý rằng -o, giống như hầu hết các unziptùy chọn, phải đi trước tên lưu trữ.


1
ví dụ : unzip -o ZIP_PATH, hoạt động như một công cụ sửa đổi.
bonzofenix

10
-otùy chọn nên được sử dụng trước bất kỳ đối số khác. Ví dụ:unzip -o /path/to/archive.zip -d /destination_dir
FelikZ

1
@FelikZ Cảm ơn bạn đã chi tiết, tôi đã thêm ví dụ (tước xuống) của bạn vào câu trả lời
foraidt

điều này không hoạt động trên các trang web Azure (Windows).
loretoparisi

@loretoparisi Bạn đang nói về cái gì vậy? Đây là một câu hỏi Linux. Bạn đang tìm kiếm một cái gì đó như Mở rộng-Lưu trữ ?
Franklin Yu

31

Nếu bạn cần giải nén để chỉ thay thế các tệp mới, bạn có thể sử dụng

unzip -f archieve.zip

Nhưng để tham khảo trong tương lai, bạn chỉ cần gõ

unzip 

và bạn sẽ nhận được một danh sách các đối số cho gói này. Các đối số có thể là cho trường hợp này là:

-f  freshen existing files, create none
-n  never overwrite existing files         
-q  quiet mode (-qq => quieter)
-o  overwrite files WITHOUT prompting    

Sử dụng một trong những bạn cảm thấy phù hợp hơn cho nhu cầu của bạn.


6
+1, tôi thích phiên bản thân thiện hơn, tinh tế hơn của "đây là cách rtfm cho bối cảnh, nhưng đây là phần có liên quan của phương pháp m".
Nathan Basan

1
Cũng nhìn vào sự giúp đỡ, nhưng không hiểu khác biệt. giữa -u update files, create if necessary-f freshen existing files, create none🤷‍♂️?
juanmirocks

//, Sự khác biệt nằm ở hành vi nếu tệp không tồn tại
Nathan Basan

@juanmirocks Với -f, các tệp mới hơn sẽ không được trích xuất ngay cả khi chúng không ở đích (chẳng hạn như nếu phiên bản sau của zip được tạo có các tệp mà giải nén trước đó không tạo). Nếu bạn chưa biết bạn muốn điều đó, rất có thể bạn không biết. Ngược lại, -u sẽ trích xuất các tệp bổ sung không có trên đích, đảm bảo không có gì bị thiếu từ đích đến trong zip.
poikilos
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.