Criar mesma pasta em varios diretorios

1. Criar mesma pasta em varios diretorios

Fabiano Alves
binhowbinho

(usa Fedora)

Enviado em 09/07/2011 - 23:28h

Pessoal ve se alguém consegue me da uma força.
Preciso copiar uma pasta que possui outros diretorios dentro dela, porém quero copiar a pasta interia para varias outras pastas. Queria saber se tem alguma forma deu copiar isso para todas as outras pastas que eu quero de forma automatizada. Vou dar um exemplo para ficar mais claro.

/pasta - Diretorio que quero copiar
/destino/diretorio1
/destino/diretorio2
/destino/diretorio3
/destino/diretorio4
/destino/diretorio5 ..... e assim por diante
Se alguem puder dar uma força eu agradeço.


  


2. Re: Criar mesma pasta em varios diretorios

Perfil removido
removido

(usa Nenhuma)

Enviado em 09/07/2011 - 23:41h

Em código ou no terminal?

Se for no terminal:

para copiar a pasta:

cd /destino
cp -R /pasta/ diretorio1
cp -R /pasta/ diretorio2
cp -R /pasta/ diretorio3
cp -R /pasta/ diretorio4
cp -R /pasta/ diretorio5

para copiar apenas o conteudo da pasta:

cd /destino
cp -R /pasta/* diretorio1
cp -R /pasta/* diretorio2
cp -R /pasta/* diretorio3
cp -R /pasta/* diretorio4
cp -R /pasta/* diretorio5


3. Re: Criar mesma pasta em varios diretorios

Fabiano Alves
binhowbinho

(usa Fedora)

Enviado em 10/07/2011 - 00:16h

Seria em codigo mesmo, pois os diretorios de destino não tem um nome padrão, são nomes de empresas, e dentro de todas elas eu tenho q criar os diretorios de departamentos, que no caso do meu exemplo eu usei como /pasta


4. Re: Criar mesma pasta em varios diretorios

Perfil removido
removido

(usa Nenhuma)

Enviado em 10/07/2011 - 00:47h

Migrei a pouco tempo para Linux ainda não sei direito quais são as funções portáveis que posso usar aqui, então vou deixar que outro te responda.

Isso é um código que requer um cuidado extra, já que está mexendo com pastas rs rs


5. Re: Criar mesma pasta em varios diretorios

Raimundo Alves Portela
rai3mb

(usa Outra)

Enviado em 10/07/2011 - 01:13h

Acho que dar para ajudar, mas vai precisar ainda de uma certa adaptação para o seu caso, pelo que entendi, poderia fazer assim.
------------------------------------------
#!/bin/bash
# script varias_copias.sh
# Sintaxe ./varias_copias.sh <caminho_completo_diretorio_origem> <arquivo_com caminho de destino>

[ -z "$1" ] || [ -z "$2" ] && \
echo "Sintaxe $0 <caminho_completo_diretorio_origem> <arquivo_com caminho de destino>" && exit 1

! [ -d "$1" ] && echo "o [$1] não é um diretório" && exit 1
ORIGEM="$1"

! [ -f "$2" ] && echo "o [$2] não é um arquivo" && exit 1
ARQUIVO_DESTINO="$2"

# conta as linhas do arquivo
LINHAS=$(cat "$ARQUIVO_DESTINO" | egrep '[^(^$)]' | wc -l)

for i in $(seq $LINHAS)
do
# obtem o valor do destino informado em cada linha do arquivo
DESTINO=$(cat "$ARQUIVO_DESTINO" | head -n $i | tail -n 1)
! [ -d "$DESTINO" ] && echo "Na linha [$i] o valor [$DESTINO] não é um diretório válido" && continue

# copia a origem para o destino
cp -R "$ORIGEM" "$DESTINO"
done
#FIM
----------------------------------------------------------

Salve o conteúdo acima como varias_copias.sh, der permissão de execução:
$ chmod +x varias_copias.sh

Crie um arquivo texto com o endereço completo de destino, um por linha.

E execute o script, exemplo;

$ sudo ./varias_copias.sh /home/rai3mb ARQUIVO.txt

sendo que o ARQUIVO.txt, poderia ter o seguinte conteúdo:

/media/hd_backup1/
/media/hd_backup1/
/media/hd_backup1/
/media/hd_backup1/


Veja se funciona,
Abraços



6. Re: Criar mesma pasta em varios diretorios

Fabiano Alves
binhowbinho

(usa Fedora)

Enviado em 10/07/2011 - 22:17h

Valeu pela dica, mas o meu problema é extatamente os diretoris de destinos, são mais de 3 mil pastas, e com diversos nomes, não segue um padrão. Neste modelo seu eu teria que lista-los no arquivo TXT um a um, não teria alguma entrada ou forma dele identificar esses diretorios automaticamente e incluir a pasta de origem dentro delas? Todos os diretorios de destinno esta dentro da mesma pasta. /destino/........


7. Re: Criar mesma pasta em varios diretorios

Perfil removido
removido

(usa Nenhuma)

Enviado em 10/07/2011 - 22:33h

você pode fazer pelo terminal:

$ ls /destino > pastas

Isso vai gravar no arquivo "pastas" o nome de tudo que está no diretório /destino ai você pode usar com o script do amigo... você também pode usar alguns filtros se precisar , como grep , awk , etc


8. Re: Criar mesma pasta em varios diretorios

Raimundo Alves Portela
rai3mb

(usa Outra)

Enviado em 11/07/2011 - 00:29h

Deve existir uma maneira mas fácil, mas criei a abaixo:

-------------------------------------------------------
#!/bin/bash
LISTA=(${array[@]} `ls /destino`)
QUANTIDADE="${#LISTA[@]}"

for i in $(seq $QUANTIDADE)
do
i=$(($i-1))
echo "/destino/${LISTA[$i]}" >> ARQUIVO.txt
done
#.EOF
-----------------------------------------------


Basta substituir o diretório /destino no inicio do script.

Abraços






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts