Pular para o conteúdo

Comando cp

Responder tópico
  • Denunciar
  • Indicar

1. Comando cp

Enviado em 05/04/2010 - 13:13h

Pessoal estou com um problema aqui no script de cópia de arquivo para outro diretório.

preciso gerar 15 pastas dentro de uma pasta0 no diretório tmp/default
até ai ok, as pastas são geradas.
Mas no meio desse tramite ele pede pra copiar um arquivo que se encontra no etc
nome do arquivo: resolv.conf.

screvi o script podem me ajudar por gentileza.?

clear
echo -e "Acessando pastas..."
cd /tmp
mkdir default
echo
echo "Criando pastas"
echo
cd /tmp/default
mkdir pasta0
cd pasta0
echo
echo "Pasta Criada com sucesso"
echo "Criando pastas dentro da pasta 0"
echo
for i in $(seq 14)
do
mkdir $i
done
echo
echo "Qual o número da pasta que será copiado o arquivo?"
read $pasta
cp resolv.conf -- target-directory=/tmp/default/pasta0/$pasta
echo
echo



Responder tópico

2. Re: Comando cp

Enviado em 05/04/2010 - 13:17h

Bom, acredito q vc deva apenas colocar o caminho completo no seu script:

cp /etc/resolv.conf --target-directory=/tmp/default/pasta0/$pasta

3. Use escapes

Enviado em 05/04/2010 - 16:17h

cp resolv.conf -- target-directory=/tmp/default/pasta0/${pasta}

As chaves (escape) garantem melhor a legibilidade do código pela shell. Mas antes, recomendo que faça algo assim:

_cria_pastas(){

if [ -d $1 ]; then
echo -e "A pasta ${1} já existe"
else
mkdir $1 2>/dev/null ||
echo -e "Erro: não foi possivel criar a pasta ${1}" &&
echo -e "A pasta ${1} foi criada com sucesso"

fi

}

Essa função garante muito melhor a criação das pastas e gera um "log" no terminal para cada pasta a ser criada...

Para usa-la:

_cria_pasta [ path ]
Nota: respeite a ordem de criação seguindo a hierarquia da estrutura de diretórios que você irá criar...
Exemplo:

_cria_pastas /tmp/foo/bar
_cria_pastas /tmp/foo
_cria_pastas /tmp/foo/bar
_cria_pastas /tmp/foo

Bom proveito.

Responder tópico

Responder tópico

Entre na sua conta para responder.

Fazer login para responder