2016-07-08 2 views
-1

Я хочу получить только новый или измененный список файлов с несколькими фильтрами по результату. Мои все новые или измененные файлы: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 

EDIT:

Позвольте мне объяснить выигрышный ответ:

Вот порядок путей 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/ 

исключены.

ответ

1

В рекурсивном режиме rsync посещает подкаталоги сверху вниз, поэтому wp-content сопоставляется с вашими правилами, когда rsync проверяет верхний уровень вашего дерева. Поскольку нет шаблона включения, который соответствует этому каталогу, правило общего исключения - * оставляет его.

Согласно rsync manpage, одним из способов достижения вашей цели является размещение + */ в любом месте перед правилом исключения, поэтому подкаталоги включены во время рекурсивной операции.

+0

Проверьте мое редактирование, это правильный способ обработки? :) –

+0

@NovkovskiStevoBato Я только что добавил wp-content/как исключенный каталог в вашем объяснении (экспертная оценка ожидает рассмотрения). Кроме того, это выглядит правильно для меня. – coolparadox