Files
rsync 只包含子目錄
目前,我正在努力尋找一種解決方案,僅在子目錄中包含文件但排除所有其他內容。文件結構如下所示
$ tree ../ ../ ├── from │ ├── a │ │ ├── aa │ │ │ └── x.txt │ │ ├── a.txt │ │ └── b.txt │ └── b │ ├── b.txt │ └── c.txt └── to
並且只有 a/aa/ 中的東西會被轉移到/。
$ rsync -avh --include=a/aa/*** --exclude=* ../from/ ../to/
不起作用並且 to/ 保持為空,但使用 a/ 執行此操作
$ rsync -avh --include=a/*** --exclude=* ../from/ ../to/
有用
$ tree ../ .. ├── from │ ├── a │ │ ├── aa │ │ │ └── x.txt │ │ ├── a.txt │ │ └── b.txt │ └── b │ ├── b.txt │ └── c.txt └── to └── a ├── aa │ └── x.txt ├── a.txt └── b.txt
但是 a.txt 和 b.txt 不應該在那裡。我錯過了什麼?
謝謝你的幫助。
在您的第一個命令中,
a/aa/***
將匹配aa/
以及之後的任何內容,但沒有匹配 fora/
,因此不會複製任何內容。在第二個命令中,
a/***
匹配a/
和之後的任何內容,因此您複製的不僅僅是a/aa/
內容。例如,這應該足夠了:
rsync -avh --include='/a/' --include='/a/aa/***' --exclude='*' from/ to/
man rsync
至INCLUDE/EXCLUDE PATTERN RULES