Cách bao gồm / loại trừ các thư mục trùng lặp


9

Tôi đang sử dụng bản sao để sao lưu một số tệp của mình. Trang man là loại khó hiểu, liên quan đến các mẫu bao gồm / loại trừ. Tôi muốn sao lưu những điều sau đây:

/storage/include
/otherthings

nhưng không

/storage/include/exclude

Tệp bao gồm hiện tại:

+ /storage/include
- /storage/include/exclude
+ /otherthings
- ** 

Sao y được gọi như sau:

/usr/bin/duplicity --include-globbing-filelist /Path/to/file/above / target

Nó chỉ đơn giản là không hoạt động. Mỗi lần sao lưu, nó cũng bao gồm các tệp trong / lưu trữ / bao gồm / loại trừ.


Làm thế nào để bạn biết đó là cú pháp của tệp bao gồm? Ngoài ra, có lẽ điều này sẽ làm việc : duplicity --exclude-filelist "/Path/to/filelist/without-or+/to-exclude" / target. (lưu ý: Tôi không sử dụng duplicity, chỉ là một đề xuất dựa trên trang hướng dẫn tôi tìm thấy)
JMCF125

Câu trả lời:


9

Phần chọn tệp của duplicitytrang man nêu:

Mỗi điều kiện lựa chọn tệp phù hợp hoặc không khớp với một tệp nhất định. Một tệp đã cho được loại trừ bởi hệ thống chọn tệp chính xác khi điều kiện chọn tệp phù hợp đầu tiên xác định rằng tệp bị loại trừ; nếu không các tập tin được bao gồm.

Điều này liên quan đến mức độ ưu tiên của các tùy chọn dòng lệnh --incoide / --exclude, nhưng trang thủ công sau này bạn sẽ tìm thấy thông tin liên quan cho --include-globbing-filelisttùy chọn bạn sử dụng:

The --include-globbing-filelist and --exclude-globbing-filelist options also 
specify filelists, but each line in the filelist will be interpreted as a
globbing pattern the way --include and --exclude options are interpreted
(although "+ " and "- " prefixing is still allowed). For instance, if the
file "globbing-list.txt" contains the lines:

    dir/foo
    + dir/bar
    - ** 

Then --include-globbing-filelist globbing-list.txt would be exactly the same
as specifying --include dir/foo --include dir/bar --exclude ** on the command
line. 

Điều gì xảy ra là /storage/include/excludephù hợp với dòng đầu tiên, do đó nó được bao gồm. Nói chung, bạn nên sử dụng các tuyên bố cụ thể hơn trước những tuyên bố ít cụ thể hơn. Sau đây nên làm việc cho bạn:

- /storage/include/exclude
+ /storage/include
+ /otherthings
- ** 

Đẹp. Nó hoạt động. Thêm một câu hỏi nữa: Nếu tôi chỉ muốn loại trừ, hãy nói "txt" -Files trong thư mục loại trừ. Làm thế nào để tôi làm điều này? - / st Storage / include/exclude/*.txt không hoạt động
int2000

@ int2000 Điều đó IMHO sẽ hoạt động, nhưng các mẫu như vậy không được kiểm tra rõ ràng . Vì vậy, có thể có một vấn đề. Bạn có thể sử dụng /storage/include/exclude/**.txt, hoặc ít nhất là thử nếu nó hoạt động. Nếu không, bạn có thể đã tìm thấy một lỗi trong mã phù hợp trong
select.py
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.