Você pode usar for
for d in /path/to/source/*; do echo mkdir /path/to/dest/"$(basename $d)" && echo cp -rvb -- /path/to/source/"$d"/src/* /path/to/dest/"$(basename $d)"; done
Se você estiver fazendo isso a partir do diretório pai de source
e dest
, poderá usar caminhos relativos:
for d in source/*; do echo mkdir dest/"$(basename $d)" && echo cp -rvb -- "$d"/src/* dest/"$(basename $d)"; done
Após o teste, remova echo
para realmente copiar os arquivos
for d in source/*; do mkdir dest/"$(basename $d)" && cp -rvb -- "$d"/src/* dest/"$(basename $d)"; done
Mais legível ...
for d in /path/to/source/*; do
echo mkdir /path/to/dest/"$(basename $d)" &&
echo cp -rvb -- /path/to/source/"$d"/src/* /path/to/dest/"$(basename $d)"
done