Infelizmente, quando o destino do comando mv
não é um diretório existente, ele renomeia o arquivo de origem como o destino; quando usado dentro de um comando find
, isso significa que cada arquivo sucessivo que corresponda ao predicado irá sobrescrever o anterior. Portanto, no seu caso, o arquivo ./ooutputs
agora conterá apenas o conteúdo do último arquivo .mat
que foi correspondido. Para evitar acidentes como este, é uma boa prática incluir sempre um caractere de barra ao mover arquivos para um novo diretório, por exemplo,
find . -name '*.mat' -exec mv {} ./ooutputs/ \;
pois isso causará um erro se /ooutputs
não for de fato um diretório existente. Eu não sei de uma maneira de recuperar os outros arquivos, exceto de backups - desculpe.