En Linux ¿cómo puedo crear una carpeta a partir de un archivo?

En Linux ¿cómo puedo crear una carpeta a partir de un archivo?

Ejecuté el siguiente comando para buscar todos los epubs y moverlos a un directorio:

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

Eso creó un súper archivo con todos los epubs concatenados. ¿Hay alguna forma de volver a separarlos? ¿Existe algún comando para cambiar el superarchivo a una carpeta?

Respuesta1

Si no creó el directorio /data/EPUBprimero, entonces efectivamente lo que hizo fue cambiar el nombre de cada archivo, uno a la vez, a un archivo con nombre /data/EPUB, sobrescribiendo el anterior cada vez.

Lo que tiene ahora no es un "superarchivo", sino /data/EPUBel archivo .epub final que se movió, y todos los demás archivos .epub se perdieron (ya que fueron sobrescritos en movimientos posteriores).

No existe una forma sencilla de recuperarlos.

Sugiero desmontar el dispositivo inmediatamente (si es posible) y no realizar más escrituras, luego usar un programa comoDisco de pruebapara intentar recuperar los archivos sobrescritos (también instrucciones detalladasaquí).

En el futuro recomiendo usar mv -iel cual solicitará sobrescribir, detectando así errores como este.

También sugiero que se acostumbre a colocar un final /después de los nombres de los directorios, lo que también detectará dichos errores al fallar si el directorio no existe (en lugar de asumir que es un archivo), por ejemplo:

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

información relacionada