Se você tiver um arquivo para todos os dias, poderá usar uma expressão de sequência em chaves :
cp -p system-2013-01-{01..15}.log /elsewhere
Se você não tiver um arquivo para todos os dias, use os padrões de caracteres. .
cp -p system-2013-01-0[1-9].log system-2013-01-1[0-5].log /elsewhere
Se não houver nenhum arquivo correspondente em um dos dois intervalos, o padrão não será expandido. Defina a opção nullglob (bash-specific) para evitar isso ( shopt nullglob
).
O Zsh torna isso mais fácil graças ao seu intervalo numérico <start-stop>
padrão glob .
cp -p system-2013-01-<1-15>.log /elsewhere
Uma abordagem diferente que não requer zsh e escala bem para casos mais complexos é usar find
para gerar a lista de arquivos. Você não precisa se preocupar com não-correspondências: cp
será executado para cada partida.
find . \( -name 'system-2013-01-0[1-9].log' -o -name 'system-2013-01-1[0-5].log' \) -exec cp -p {} /elsewhere \;
Adicione -type d -prune -o
após find .
para evitar recursão em subdiretórios.