recupera dados colocados no arquivo não-diretório usando o comando -mv

0

Eu usei o comando abaixo para mover meus dados para um diretório:

find . -name '*.mat' -exec mv {} ./ooutputs \;

No entanto, o diretório de ./ooutputs não existe. Um arquivo chamado ootputs é então criado e não consigo abrir.

Existe alguma maneira de recuperar os dados dentro do arquivo?

Muito obrigado.

Wenxu

    
por user2559061 05.10.2013 / 05:15

1 resposta

1

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.

    
por steeldriver 05.10.2013 / 05:54