Movendo apenas arquivos, não diretórios? [duplicado]

2

Eu quero mover todos os arquivos, mas não as pastas, dentro de uma pasta para outro diretório.

Eu tenho usado este comando:

find . -maxdepth 1 -type f -exec mv {} destination_folder \;

Mas agora eu quero mover todos os arquivos, exceto os que começam com "exe_", então tentei:

find . -maxdepth 1 -type f -exec mv !(exe_*) part1a_si_atom-exp001 \;

Mas agora também move diretórios. O que posso fazer?

    
por Joshua Salazar 16.11.2016 / 19:41

1 resposta

4

!(exe_*) está sendo interpretado pelo seu shell e expandido antes que seu comando find seja executado. Em vez disso, tente o sinalizador -name para encontrar:

find . -maxdepth 1 -type f -not -name 'exe_*' -exec mv {} destination_folder \;

Também recomendo usar + em vez de ; como o terminador do comando -exec para reduzir a sobrecarga.

    
por 16.11.2016 / 19:44