Com csh
, tcsh
, ksh93
, bash
, fish
ou zsh -o cshnullglob
, você pode usar expansão de chave e globbing para fazer isso ( --
não é necessário para esses nomes de arquivos, mas eu suponho que eles são apenas exemplos):
cp -- {abc,abd,aer,ab-x,ate}* dest/
Se você preferir não usar a expansão de chaves, você pode usar um loop for (aqui a sintaxe de estilo POSIX / Bourne):
for include in abc abd aer ab-x ate; do
cp -- "$include"* dest/
done
Se você tiver uma quantidade muito grande de arquivos, isso pode ser lento devido à invocação de cp
uma vez por inclusão. Outra maneira de fazer isso seria preencher uma matriz e ir de lá (aqui ksh93
, zsh
ou recente bash
sintaxe):
files=()
includes=(abc abd aer ab-x ate)
for include in "${includes[@]}"; do
files+=( "$include"* )
done
cp -- "${files[@]}" dest/