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