Posso verificar várias extensões de arquivo em um arquivo de regras de filtro de rsync por linha?

0

Eu tenho um script rsync de trabalho, que atravessa recursivamente nossa estrutura de diretórios e carrega um arquivo .publish por diretório. Cada arquivo contém uma lista de arquivos a serem publicados. Publicar significa copiar arquivos de um repositório git interno, não totalmente de código aberto, para um repositório completo de código aberto. A pasta de destino (chamada exportação) é então enviada para o GitHub. Desta forma foi escolhido, porque ou não temos todos os direitos sobre os arquivos para publicá-los, ou alguns arquivos precisam de um retrabalho antes de ir a público:).

Um arquivo .publish se parece com este:

# 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

Estou procurando uma possibilidade de mesclar as linhas *.vhdl e *.files em uma linha, usando algo como: sync_Command\.(vhdl|files) (sintaxe regexp).

Pesquisei a página do manual do rsync , mas acabei de encontrar o curinga * , que parece ser um pouco para geral.

Existe a possibilidade de especificar várias extensões de arquivo por linha?

Esta é a minha linha de comando 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 "${rsyncOptions[@]}" "$src/" "$dst/"
    
por Paebbels 18.04.2016 / 17:52

0 respostas