shell do Linux - erro inesperado

2

Sou novo no linux & mundo de comando. Eu tenho dois diretórios, um chamado pasta (que contém 3 arquivos) e outro chamado pasta2 (com nada dentro). Estou tentando mover todos os 3 arquivos de pasta para pasta2 com o comando find. Mas eu recebo o erro abaixo. Alguma sugestão?

Comando:

find pasta -type f -exec mv pasta2 {} \;

e eu recebo esta saída:

mv: cannot overwrite non-directory 'pasta/tmp3' with directory 'pasta2'
mv: cannot overwrite non-directory 'pasta/tmp1' with directory 'pasta2'
mv: cannot overwrite non-directory 'pasta/tmp2' with directory 'pasta2'
    
por Ricardo Almeida 08.11.2013 / 18:59

1 resposta

3

Você tem a sintaxe para mv errada. Deve ser:

mv source destination

Você está executando

mv destination source

Portanto, o comando find está realmente em execução

mv pasta2 pasta/tmp3
mv pasta2 pasta/tmp2
mv pasta2 pasta/tmp1

Ele está reclamando que você está tentando sobrescrever ( mv ) um diretório com um arquivo regular. O que você realmente quer fazer é

find pasta -type f -exec mv {} pasta2 \;

Isso será executado

mv pasta/tmp3 pasta2
mv pasta/tmp2 pasta2 
mv pasta/tmp1 pasta2 

que deve ser executado sem erros.

    
por 08.11.2013 / 19:02