我有一个像这样的目录树:
dir1/
file11
file12
file13
...
file1548216479524594
dir2/
file21
file22
dir3/
dir31/
file311
file312
dir32/
file321
我想rsync
整个目录树,但不包含目录dir1的内容。
如果我使用基本的rsync
命令:
rsync --progress -v -ar --delete --exclude="dir1/*" src/ dst/<br>
它有效。但是如果我在执行之前使用 -n 进行空运行,它会持续很长时间,因为 dir1 包含很多文件(我不知道为什么在空运行期间它列出了所有文件,甚至是排除的文件)。
如果我使用 --exclude="dir1/"
,空运行速度很快,但我没有目录树。
如何在整个目录树中排除 dir1 的所有内容,快速进行 rsync 空运行(避免递归地使用数量非常多的 dir1 文件)?
在 rsync 的最新版本中,您可以使用 -F 选项并在 src 目录中放置一个文件“.rsync-filter”,其中包含:
- dir1/***
这似乎对我有用。我假设您上面的层次结构全部位于“src/”下。
我是一名优秀的程序员,十分优秀!