No linux como posso criar uma pasta a partir de um arquivo?

1

Eu executei o seguinte comando para encontrar todos os epubs e movê-los para um diretório:

find . -iname "*.epub" -exec mv {} /data/EPUB \;

Isso criou um super arquivo com todos os e-mails concatenados juntos. Existe alguma maneira de separá-los novamente? Existe um comando para alterar o super arquivo em uma pasta?

    
por cshea 06.07.2014 / 05:22

1 resposta

5

Se você não criou o diretório /data/EPUB primeiro, então, efetivamente, o que você fez foi renomear cada arquivo, um de cada vez, para um arquivo chamado /data/EPUB - substituindo o anterior de cada vez.

O que você tem agora não é um "superfile", mas /data/EPUB é o arquivo .epub final que foi movido, e todos os outros arquivos .epub foram perdidos (como foram sobrescritos por movimentos subseqüentes).

Não há uma maneira direta de recuperá-los.

Sugiro desmontar o dispositivo imediatamente (se possível) e não fazer mais gravações, e depois usar um programa como TestDisk para tentar recuperar os arquivos sobrescritos (também instruções detalhadas aqui ).

No futuro, eu recomendo usar mv -i , que irá solicitar a sobregravação, capturando, assim, erros como este.

Também sugiro criar o hábito de colocar um / à direita após os nomes dos diretórios, o que também trará esses erros por falha se o diretório não existir (em vez de assumir que é um arquivo), por exemplo:

find . -iname "*.epub" -exec mv -i {} /data/EPUB/ \;
    
por 06.07.2014 / 05:46