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

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

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 epubs concatenados. Existe alguma maneira de separá-los novamente? Existe um comando para transformar o super arquivo em uma pasta?

Responder1

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

O que você tem agora não é um "superarquivo", mas /data/EPUBsim o arquivo .epub final que foi movido e todos os outros arquivos .epub foram perdidos (pois foram substituídos por movimentos subsequentes).

Não existe uma maneira simples de recuperá-los.

Sugiro desmontar o dispositivo imediatamente (se possível) e não realizar mais gravações e, em seguida, usar um programa comoTestDiskpara tentar recuperar os arquivos sobrescritos (também instruções detalhadasaqui).

No futuro, recomendo usar mv -iwhich solicitará a substituição, detectando erros como este.

Eu também sugiro criar o hábito de colocar um final /após os nomes dos diretórios, o que também detectará esses erros ao falhar se o diretório não existir (em vez de assumir que é um arquivo), por exemplo:

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

informação relacionada