rsync include-from 文件递归
rsync include-from file recursion
我只想获取新的或更改的文件列表,结果几乎没有过滤器。
我所有新的或更改的文件是:
>f+++++++++ dsadcache.txt
>f+++++++++ root.svn
>f+++++++++ txt-file-in-root.txt
>fcsT...... wp-config.php
cd+++++++++ cache/
>f+++++++++ cache/fileincac.txt
>f+++++++++ cache/fileincache.txt
>f+++++++++ wp-content/inside.svn
>f+++++++++ wp-content/inside.txt
>f+++++++++ wp-content/object-cache.php
最终结果应该如下所示:
>f+++++++++ txt-file-in-root.txt
>fcsT...... wp-config.php
>f+++++++++ wp-content/inside.txt
当我尝试使用此规则包含来自文件时:
- *cache*
+ *.html
+ *.txt
+ *.js
+ *.php
+ *.jpg
+ *.jpeg
+ *.png
+ *.bmp
+ *.gif
+ *.tif
+ *.tiff
+ *.ico
+ *.json
+ *.xml
- *
过滤器有效,但结果不是递归的
>f+++++++++ txt-file-in-root.txt
>fcsT...... wp-config.php
缺少:
>f+++++++++ wp-content/inside.txt
我的命令是:
rsync -nrci --include-from="file" source/ destination
编辑:
让我解释一下获奖答案:
这是 rsync 进程的路径顺序:
dsadcache.txt
txt-file-in-root.txt
cache/
cache/fileincac.txt
cache/fileincache.txt
wp-content/
wp-content/inside.txt
wp-config.php
不包括
filter='+ */'
目录
cache/
wp-content/
被排除在外。
在递归模式下,rsync 从上到下访问子目录,因此当 rsync 检查树的顶层时,wp-content
首先与您的规则匹配。由于没有匹配此目录的包含模式,通用排除规则 - *
将其删除。
根据 rsync 联机帮助页,实现目标的一种方法是在排除规则之前的任何位置放置 + */
,以便在递归操作期间包含子目录。
我只想获取新的或更改的文件列表,结果几乎没有过滤器。 我所有新的或更改的文件是:
>f+++++++++ dsadcache.txt
>f+++++++++ root.svn
>f+++++++++ txt-file-in-root.txt
>fcsT...... wp-config.php
cd+++++++++ cache/
>f+++++++++ cache/fileincac.txt
>f+++++++++ cache/fileincache.txt
>f+++++++++ wp-content/inside.svn
>f+++++++++ wp-content/inside.txt
>f+++++++++ wp-content/object-cache.php
最终结果应该如下所示:
>f+++++++++ txt-file-in-root.txt
>fcsT...... wp-config.php
>f+++++++++ wp-content/inside.txt
当我尝试使用此规则包含来自文件时:
- *cache*
+ *.html
+ *.txt
+ *.js
+ *.php
+ *.jpg
+ *.jpeg
+ *.png
+ *.bmp
+ *.gif
+ *.tif
+ *.tiff
+ *.ico
+ *.json
+ *.xml
- *
过滤器有效,但结果不是递归的
>f+++++++++ txt-file-in-root.txt
>fcsT...... wp-config.php
缺少:
>f+++++++++ wp-content/inside.txt
我的命令是:
rsync -nrci --include-from="file" source/ destination
编辑:
让我解释一下获奖答案:
这是 rsync 进程的路径顺序:
dsadcache.txt
txt-file-in-root.txt
cache/
cache/fileincac.txt
cache/fileincache.txt
wp-content/
wp-content/inside.txt
wp-config.php
不包括
filter='+ */'
目录
cache/
wp-content/
被排除在外。
在递归模式下,rsync 从上到下访问子目录,因此当 rsync 检查树的顶层时,wp-content
首先与您的规则匹配。由于没有匹配此目录的包含模式,通用排除规则 - *
将其删除。
根据 rsync 联机帮助页,实现目标的一种方法是在排除规则之前的任何位置放置 + */
,以便在递归操作期间包含子目录。