Faça cópias de um único diretório para vários diretórios com nomes diferentes

4

Eu estou tentando replicar um único diretório (com sub-diretórios) para um monte de novos diretórios baseados em uma lista. Por exemplo eu posso:

mkdir Fred Barney Thelma Louise Foo Bar

Como eu copiaria um diretório pré-criado (com alguns subdiretórios vazios) para o mesmo conjunto de nomes? Por exemplo:

cp -r master_folder/ Fred Barney Thelma Louise Foo Bar

Alguma sugestão muito apreciada!

    
por user30191 12.01.2013 / 21:01

2 respostas

3

Use um loop para percorrer os diretórios que você deseja copiar e copie o conteúdo do diretório mestre para cada um deles:

dest=(Fred Barney Thelma Louise Foo Bar)
for d in "${dest[@]}"; do
    cp -r master "$d"
done
    
por 12.01.2013 / 21:20
3

Se os nomes dos seus diretórios não contiverem caracteres especiais (espaço em branco ou \"' ):

echo Fred Barney Thelma Louise Foo Bar | xargs -n1 cp -r master_folder

Isso também pode ser escrito:

xargs -n1 cp -r master_folder  < <(echo Fred Barney Thelma Louise Foo Bar)

ou mais explicitamente, através de um loop bash (isso funciona para nomes de arquivos arbitrários):

for user in Fred Barney Thelma Louise Foo Bar ;do
    cp -r master_folder "$user"
  done
    
por 12.01.2013 / 21:21