Olá Jamille,

Acho que o que vc quer fazer é isso:

#!/bin/bash

origem=/x/y/z/ # a base do diretório q voce quer ignorar
destino=$PWD/  # onde vai fazer o backup, por exemplo /backups/janeiro/

while read i; do
        diretorio="${destino}${i/$origem}" # Tira o /x/y/z/
        echo mkdir -p "$diretorio"
        echo cp -ar "$i/*" "$diretorio"
        # simplesmente apague os "echos" se depois de executar
        # algumas vezes lhe parecer que os comandos
        # farão exatamente o que vc quer
done < /a/b/c/opcoes.txt # para ler seq. as linhas do arquivo opcoes.txt

# é melhor usar este tipo de estrutura para ler o arquivo
# ao invés do cat, porque se algum diretório tiver espaços
# em branco, acontecerá um erro

# usar cp -a é uma opção interessante para backups, veja nos manuais!

Espero ter ajudado, abraços!

Leandro

Jamille Komata dos Santos escreveu:
Boa tarde, quero saber se alguém pode me ajudar...
é o seguinte, estou quebrando a cabeça...com um script
simples...Segue a função, onde estou tendo problemas
Tenho um arquivo.txt contendo uma lista de diretórios
/x/y/z/primeiro/backups
/x/y/z/segundo/backups
/x/y/z/terceiro/backups

Preciso ler esse arquivo, e copiar o conteúdo destes
diretórios listados em um diretório escolhido em outra
função com a seguinte estrutura:
primeiro/backups, segundo/backups e assim por
diante...
Desta forma que eu fiz, ele cria no diretório
escolhido as estruturas, mas copia todo o conteúdo só no
primeiro diretório...
O que posso fazer?
Obrigada

Jamille

copia () {

while true
do      
        
LISTA=$(cat /a/b/c/opcoes.txt)
        
        cd $subdir #(diretório escolhido em outra função)
        echo "O backup será copiado no diretório: $(pwd)"
        
        caminho=/x/y/z          
                
        PARTE=$(echo $LISTA | sed -e 's:/x/y/z/::g')
                
        mkdir -p $PARTE
        chmod -R 777 *
                
                        
                for i in $LISTA
                do
                cd $subdir/$PARTE
                cp -R $i .
                done
        
        
        
        read zzz
        
        
        echo ''
        echo "Copiado!"
        echo ''
        clear
        break
done

}
---------------------------------------------------------------------------
Esta lista é patrocinada pela Conectiva S.A. Visite http://www.conectiva.com.br

Arquivo: http://bazar2.conectiva.com.br/mailman/listinfo/linux-br
Regras de utilização da lista: http://linux-br.conectiva.com.br
FAQ: http://www.zago.eti.br/menu.html

Responder a