Làm cách nào tôi có thể liệt kê tất cả các tệp * .doc trong kho lưu trữ Zip, bao gồm các tệp trong thư mục con?


7

Tôi có tệp Zip, có thể trông như thế này:

$ zipinfo -1 zip.zip
doc.doc
dotx.dotx
xls.xls
ppt.ppt
txt.txt
c.c
subdir/subdir2/doc.doc
subdir/xls.xls
subdir/ppt.ppt
subdir/c.c
subdir/txt.txt
subdir/subdir2/
subdir/

Tôi muốn nó in tất cả các tệp * .doc, nhưng zipinfo -1 zip.zip *.docchỉ in các tệp .doc trong thư mục gốc của tệp Zip. Làm cách nào tôi có thể in tất cả các tệp .doc, trong tất cả các thư mục con?

Câu trả lời:


3
zipinfo -1 zip.zip '*.doc'

làm việc cho tôi, hiển thị tất cả các tập tin trong thư mục con. Tôi nghĩ rằng bạn đang quên các trích dẫn xung quanh *.doc. Không có dấu ngoặc kép, phần *.docmở rộng cho tất cả .doccác tệp trong thư mục hiện tại và sau đó được chuyển đến zipinfo dưới dạng mẫu tìm kiếm. Vì vậy, nếu bạn có một phiên bản giải nén của tệp lưu trữ có trong thư mục cục bộ, thì lệnh sẽ chỉ hiển thị .doccác tệp cấp cao nhất .

Với dấu ngoặc kép, đối số được bảo vệ khỏi trình bao, vì vậy ký tự đại diện thực sự làm cho nó zipinfothành công.



0

Nếu bạn gắn tệp lưu trữ dưới dạng thư mục, bạn có thể sử dụng các lệnh thông thường mà không phải lo lắng về thực tế rằng các tệp nằm trong kho lưu trữ.

Hệ thống tệp AVFS trình bày một khung nhìn của hệ thống tệp trong đó mọi tệp lưu trữ /path/to/foo.zipcó thể truy cập dưới dạng một thư mục ~/.avfs/path/to/foo.zip#. AVFS cung cấp quyền truy cập chỉ đọc vào hầu hết các định dạng tệp lưu trữ phổ biến. Chạy lệnh

mountavfs

một lần sau mỗi lần khởi động lại (nếu bạn muốn ngắt kết nối ~/.avfs, hãy chạy fusermount -u ~/.avfs).

Sau đó, các lệnh thông thường sẽ hoạt động:

cd ~/.avfs$PWD
find zip.zip\# -name '*.doc'

hoặc là

ls ~/.avfs$PWD/zip.zip\#/**/*.doc
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.