Como copio um arquivo para várias subpastas?

5

Parece uma pergunta simples, mas se fosse, eu não perguntaria. Eu obviamente posso fazer isso abrindo todas as pastas do nautilus e colando cada uma delas individualmente, mas o computador não é o robô (estou falando de 500 arquivos).

Então, há uma maneira de fazer isso de forma mais eficiente por meio de linha de comando ou gui? ou é tão bom quanto o outro.

Se isso faz você se sentir melhor, você estará salvando uma pobre "V" da punição severa.

    
por Allan 23.03.2011 / 01:00

3 respostas

6

Se as pastas estiverem na mesma pasta em que o arquivo existe, use:

for dir in *; do [ -d "$dir" ] && cp YOURFILE.EXT "$dir" ; done

Em outro cenário, se o arquivo estiver em um caminho diferente, use:

for i in folder1 folder2 folder3 folder4; do cp YOURFILE.EXT $i; done

Se você não sabe exatamente quais são os nomes das pastas onde colocar o arquivo, tente:

Não há necessidade de criar um script. Basta soltar esses comandos em um terminal e verificar os resultados.

Glossário:

YOURFILE.EXT = The name of your file, may contain the full path.
folder1 folder[...] = the name of the folders where to drop the file,
-- folder names may contain the full path.
    
por Geppettvs D'Constanzo 23.03.2011 / 01:16
0

Eu posso tocar {jan, fev, mar} - {Rep.xls, graph.xls} faz feb-graph.xls jan-Rep.xls feb-Rep.xls mar-graph.xls jan-graph.xls mar-Rep.xls
Mas eu não posso abri-los. Então eu queria fazer um arquivo 1.ods salvo do OO-Calc e, em seguida, queria cp-lo semelhante ao toque {jan, fev, mar} - {Rep.xls, graph.xls} usando cp 1.ods {jan, fev, mar} {Rep.ods, graph.ods} mas isso não funciona. cp: target 'margraph.ods' não é um diretório SO im também interessado neste

    
por Kangarooo 26.05.2011 / 17:07
0

encontre. tipo d | xargs -I {} cp ./myfile {} /

É assim que eu fiz o trabalho.

Aqui estava o problema que eu queria resolver. Eu queria testar todos os meus novos hosts virtuais antes de instalar os aplicativos reais.

pwd 
/var/www/
find . -type d
.
./site1
./site2
./site3
find . -type d | xargs -I{} cp ./php.info {}/ 
ls ./*
./php.info

./site1:
php.info

./site2:
php.info

./site3:
php.info

    
por nelaaro 12.01.2012 / 10:08