Могу ли я проверить наличие нескольких расширений в одном файле правил фильтрации rsync на строку?

683
Paebbels

У меня есть работающий скрипт rsync, который рекурсивно пересекает нашу структуру каталогов и загружает один .publishфайл на каталог. Каждый файл содержит список файлов для публикации. Публикация означает копирование файлов из внутреннего не полностью открытого исходного репозитория git в полный открытый репозиторий. Папка назначения (называется экспорт) затем отправляется на GitHub. Этот путь был выбран, потому что либо у нас нет всех прав на файлы для их публикации, либо некоторые файлы требуют переделки перед публикацией :).

.publishФайл выглядит как этот:

# git files .gitempty  # Documentation README.md  # Package sync.pkg.vhdl  # Clock-Domain-Crossing (CDC) circuits sync_Bits.files sync_Bits.vhdl sync_Reset.files sync_Reset.vhdl sync_Strobe.files sync_Strobe.vhdl sync_Vector.files sync_Vector.vhdl sync_Command.files sync_Command.vhdl  # Altera specific implementations sync_Bits_Altera.vhdl sync_Reset_Altera.vhdl  # Xilinx specific implementations sync_Bits_Xilinx.vhdl sync_Reset_Xilinx.vhdl 

Я ищу возможности для слияния *.vhdlи *.filesлиний в одну линию, используя что - то вроде: sync_Command\.(vhdl|files)(синтаксисе регулярных выражений).

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

Есть ли возможность указать несколько расширений файлов на строку?

Это моя командная строка rsync:

rsyncOptions=( \ --archive \ --itemize-changes \ --human-readable \ --verbose \ '--filter=:en+ .publish' \ '--filter=- *' \ '--filter=P .git' \ '--filter=P .gitmodules' \ '--filter=P lib/*' \ --delete --delete-excluded --prune-empty-dirs \ --stats) rsync "$" "$src/" "$dst/" 
0
Обычно с помощью rsync вы можете написать что-то вроде `rsync -rv --include '* /' --include '* .html' --include '* .php' --exclude '*' --prune-empty-dirs Source / Target / `, если вы хотите включить все файлы` * .html` и `* .php` и исключить другие (` --exclude '*' `) и пустой каталог (prune), но сканируя все _sub_ каталоги `* /`. Вы пробовали `--include`? Hastur 8 лет назад 0
Правила включения указаны в файлах `.publish` в иерархии. В каждом файле также указывается, следует ли выполнять подкаталог также при rsynced. Мы хотим иметь полный контроль над опубликованными файлами. Таким образом, глобальное включение всех файлов `* .vhdl` не вариант. Paebbels 8 лет назад 0

0 ответов на вопрос

Похожие вопросы