rsync --include-from 不起作用

rsync --include-from 不起作用

手冊頁沒有這方面的範例。我很難告訴 rsync 僅包含這些文件所在的某些文件。我不明白為什麼你必須排除才能包含,為什麼rsync不包含包含文件中的內容,而其他所有內容都將被排除。

這是我的腳本:

rsync -ruv --rsh=ssh --include-from=zz-rsync-test.prod.incl /usr2/subdir remoteSrv:/tmp/.

這是我的包含文件,它不起作用:它複製了太多:它複製了 /usr2/subdir 中的所有內容(包括目錄subdir,很奇怪),這是我不想要的。我只想複製data/text_forms目錄中的 per、42f 和 xml 檔案。

+ data/text_forms/*.per
+ data/text_forms/*.42f
+ data/text_forms/*.xml
+ data/text_forms/*.xml.*

並且以下內容不起作用,它不會複製任何內容:

- *
+ data/text_forms/*.per
+ data/text_forms/*.42f
+ data/text_forms/*.xml
+ data/text_forms/*.xml.*

並且以下內容也不起作用,它不會複製任何內容:

- *
+ data/
+ data/text_forms/*.per
+ data/text_forms/*.42f
+ data/text_forms/*.xml
+ data/text_forms/*.xml.*

並且以下內容也不起作用,它不會複製任何內容:

- *
+ data/
+ data/text_forms/
+ data/text_forms/*.per
+ data/text_forms/*.42f
+ data/text_forms/*.xml
+ data/text_forms/*.xml.*

以下也不起作用:

+ */
+ /data/text_forms/*.per
+ /data/text_forms/*.42f
+ /data/text_forms/*.xml
+ /data/text_forms/*.xml.*
- *

以下均不起作用:

+ /data/
+ /data/text_forms/
+ /data/text_forms/*.per
+ /data/text_forms/*.42f
+ /data/text_forms/*.xml
+ /data/text_forms/*.xml.*
- *

答案1

我找到了解決方案。我花了整整兩天才找到它。我希望這可以幫助您不要花太多時間。

subdir第一個問題是包含了中的子目錄/usr2/subdir,我不希望包含整個目錄,我只是希望它成為基底目錄,因此它需要在末尾有一個斜杠,如 中/usr2/subdir/,所以我的新命令看起來喜歡:

rsync -ruvv --rsh=ssh --include-from=zz-rsync-test.prod.incl /usr2/subdir/ remoteSrv:/tmp/.

v請注意,我在命令列 ( ) 中添加了一個額外選項-ruvv,以獲取運行命令時排除或包含的內容的更多詳細資訊。固定基本目錄和額外目錄後,v建立正確的包含檔案會更容易一些:

+ data/
+ data/text_forms/
+ data/text_forms/*.per
+ data/text_forms/*.42f
+ data/text_forms/*.xml
+ data/text_forms/*.xml.*
- *

所有+行都必須放在 之前- *,特別是對於目錄,因為即使我不想直接在這些目錄中獲取文件,我也必須明確包含要掃描的每個目錄。我做了一個測試,添加了 adata/anyTestFile1和 a,data/text_forms/anyTestFile2因為我不確定那些是否會被拾取,但它們沒有,所以它正在做我想要的......最後。

相關內容