Sử dụng rsync để sao chép tất cả các tệp ngoại trừ tên tệp nhất định có phần mở rộng nhất định


28

Tôi có hai thẻ flash có cùng kích thước và tôi muốn sao chép nội dung của thẻ này sang thẻ kia dựa trên các quy tắc sau:

  1. Tôi muốn tất cả các thư mục và thư mục con vào vị trí
  2. Tôi muốn loại trừ các tệp thuộc loại .OO, .bar và .ZIM (tất cả các tệp khác được sao chép)
  3. Phần thưởng: Thật tuyệt nếu nó xuất ra tên tệp khi chúng được sao chép vì nó sẽ sao chép ~ 8 GB thông tin

Điều này có thể được thực hiện với "tìm" bằng cách nào đó?

Câu trả lời:


41

Điều này sẽ dễ dàng hơn đáng kể khi sử dụng rsync với công --excludetắc của nó .

rsync -av --exclude='*.FOO' --exclude='*.BAR' --exclude='*.ZIM' /source /dest

Công -vtắc sẽ cung cấp đầu ra dài dòng trên đó các tệp đang được đồng bộ hóa.


Theo dõi ít ​​ở đây: bản sao đã hoàn thành và / src / * hiện đang ở / Dest / src / * Làm thế nào để sử dụng rsync để có được / src / * in / Dest / *?
macek

Hãy thử/source/ /dest
John T

Điều này không hoạt động. Tôi vẫn thấy các tập tin * .OO đang được sao chép.
Jake

Nó được chỉ định làm thế nào bạn nên đưa ra đường dẫn cho --exclude. Nếu bạn có vấn đề với nó, hãy xem câu trả lời này .
totymedli

0

Nếu bạn có số lượng lớn tiện ích mở rộng để loại trừ, bạn có thể tạo một tệp và ghi lại tất cả các tiện ích mở rộng hoặc tệp để loại trừ và chỉ sử dụng một tùy chọn loại trừ để làm cho nó đơn giản.

rsync -ravz --exclude = '. / abc, txt' / source / mệnh

Luôn luôn tốt khi sử dụng z cho tùy chọn nén và r nếu bạn phải sao chép đệ quy.

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.