Trích xuất các tệp cụ thể trong kho lưu trữ tar bằng ký tự đại diện


18

Tôi đang cố gắng tạo một tập lệnh để chỉ trích xuất hình ảnh jpeg từ kho lưu trữ chứa nhiều loại tệp.

Để làm như vậy, tôi đã cố gắng sử dụng:

   tar -xf MyTar.tar *.jpg

nhưng nó không thành công (* .jpg không tìm thấy) và đề nghị tôi sử dụng "--wildcard". Vì vậy, tôi đã cố gắng

tar -xf MyTar.tar --wildcard *.jpg

Tôi đã làm điều đó, nhưng sau đó cùng một lỗi và một cảnh báo khác nói với tôi rằng tùy chọn "--wildcard" là mơ hồ.

Tôi đã xem qua các trang dành cho người khác, nhưng không tìm thấy manh mối nào về vấn đề này.


Mà tar và phiên bản nào? Dán kết quả củatar --version
smci

Câu trả lời:


32

Cuối cùng, tôi tìm thấy sau đó trả lời sau khi nghỉ ngơi tốt. Các tùy chọn là ký tự đại diện s , số nhiều ...

Vì vậy, lệnh

tar -xf MyTar.tar --wildcards "*.jpg"

đã làm chính xác những gì tôi cần.


3

Đặt dấu ngoặc kép quanh ký tự đại diện như thế này "*.jpg"để shell không thử mở rộng nó và thay vào đó sẽ chuyển thẳng sang tar. Bạn muốn tar để đánh giá ký tự đại diện, không phải vỏ và các trích dẫn làm điều đó.


0

Đối với một số phiên bản cũ hơn của tar, phần sau đây được trích xuất từ tệp "man" :

Không thể sử dụng ký tự thay thế tên tệp để trích xuất tệp từ kho lưu trữ. Thay vào đó, sử dụng một lệnh của biểu mẫu:

tar xvf ... /dev/rmt/0 `tar tf ... /dev/rmt/0 | grep 'pattern' `
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.