У меня есть структура каталогов, похожая на следующую:

/master /apps /app1 myapp.app /.checksum 20181105.chk 20181230.chk check.sh /app2 anotherapp.app /.checksum 20181010.chk 20181229.chk 20181239.sum check.sh /app3 /sub-category1 yetanotherapp.app /.checksum 20170605.chk 20180330.chk check.sh /sub-category2 /sub-category2a someotherapp.app /.checksum 20170702.chk 20180330.chk 20181202.sum check.sh /sub-category2aa myfinalapp.app /.checksum 20170405.chk 20180919.chk check.sh /games /game1 myfirstgame.bin myfirstgame.dat /.checksum 20170702.chk 20181202.sum check.sh /game2 /sub-category1 /sub-category1a /sub-category1aa anothergame.bin /.checksum 20181221.sum check.sh /sub-category1aaa game_extension.bin /.checksum 20170405.chk 20180919.chk check.sh

Каждый каталог /.checksum содержит несколько файлов с различными расширениями ( .chk, .sh, .sum и т.д.). Я хочу переместить только каждый каталог /.checksum (с его содержимым) в один каталог с именем .checksum, расположенный в одном подкаталоге в /master. Он должен повторять ту же структуру, что и каталог /master, за вычетом содержимого. Кроме того, содержимое каждого исходного каталога /.checksum следует переместить в его родительский каталог, а каталог /.checksum отбрасывать. В конечном итоге приведенная выше структура должна выглядеть следующим образом:

/master /apps /app1 myapp.app /app2 anotherapp.app /app3 /sub-category1 yetanotherapp.app /sub-category2 /sub-category2a someotherapp.app /sub-category2aa myfinalapp.app /.checksum /apps /app1 20181105.chk 20181230.chk check.sh /app2 20181010.chk 20181229.chk 20181239.sum check.sh /app3 /sub-category1 20170605.chk 20180330.chk check.sh /sub-category2 /sub-category2a 20170702.chk 20180330.chk 20181202.sum check.sh /sub-category2aa 20170405.chk 20180919.chk check.sh /games /game1 20170702.chk 20181202.sum check.sh /game2 /sub-category1 /sub-category1a /sub-category1aa 20181221.sum check.sh /sub-category1aaa 20170405.chk 20180919.chk check.sh /games /game1 myfirstgame.bin myfirstgame.dat /game2 /sub-category1 /sub-category1a /sub-category1aa anothergame.bin /sub-category1aaa game_extension.bin

Я попытался сделать это с помощью rsync и следующих фильтров:

rsync -arv -R /master/ /master/.checksum/ --files-from=/master/.rsync/rsync_checksum_inclusions

где /master/.rsync/rsync_checksum_inclusion содержит: **/ **/.checksum/**

а также пытается включить фильтры непосредственно в команду rsync :rsync -arv -R -m --include='**/' --include='**/.checksum/**' --exclude='*'/master/ /master/.checksum/

но оба ничего не копируют.

Я попытался использовать параметр include-from и настроить файл _rsync_checksum_inclusion_: + */.checksum + *.chk + *.sum + *check.sh*

но это копирует все файлы в каждом каталоге. Включая фильтр, - * ничего не копирует.

Использование решений из Как я могу rsync набор подкаталогов? Я также был в состоянии rsync некоторые каталоги /.checksum на разных уровнях, но не все. Я считаю, что я использую неправильные шаблоны.

0