Traté de resolver esto por mi cuenta. Aquí está el comando que usé en la terminal:
find . -name "*.jpg" -exec mv {} pictures \;
No creé un directorio llamado imágenes primero. Lo que sucedió fue que se creó un archivo llamado pictures.gif. ¿Encontró los archivos y luego los sobrescribió a medida que los movía?
¿Qué es este archivo pictures.gif que se ha creado como resultado de este comando?
¿Los archivos todavía están posiblemente en el disco en alguna parte?
command-line
find
jtnewhou
fuente
fuente
/
! ¡Siempre! Entonces solo puede ser un directorio.Respuestas:
Primero: deje de usar esta unidad ahora . Está bien volver a montarlo de solo lectura, solo asegúrese de no escribir más. Sí, has borrado las fotos. Ellos pueden ser recuperables, pero cuanto más se siguen utilizando esa unidad, menos posibilidades hay que recuperar nada.
Su comando se ejecutó
mv pic1.jpg pictures
,mv pic2.jpg pictures
etc. Cada invocación demv
sobrescribió el archivo actualmente nombradopictures
por otra imagen.Mover un archivo (dentro del mismo sistema de archivos) significa separarlo del directorio que lo contiene y adjuntarlo al directorio de destino con el nuevo nombre. Por lo tanto, este comando no modificó ni eliminó los datos del archivo, solo las entradas del directorio de las imágenes que han desaparecido.
Puede ejecutar una herramienta que recorra el espacio libre de su sistema de archivos y busque cosas que parezcan archivos JPEG. Afortunadamente, cada archivo jpeg comienza con un encabezado reconocible. Las herramientas que buscan contenido eliminado se denominan herramientas de tallado . Hay algunos en Ubuntu, incluyendo recoveryjpeg , primero , testdisk , ... Si las fotos están en una partición doméstica separada o en una unidad externa, instale uno o más de esos paquetes y apúntelos a la partición con las imágenes eliminadas.
Si las fotos están en el disco de su sistema, debe dejar de usar su sistema de inmediato. Use otra computadora para descargar un CD o USB en vivo y arranque desde allí. Cualquiera de los CD en vivo que incluyen testdisk debería ajustarse a la factura, pero algunos son más fáciles de usar que otros. System Rescue CD es un buen CD de rescate de sistema de uso general. Ubuntu Rescue Remix puede ser más familiar para un usuario de Ubuntu.
Para referencia futura, adquiera el hábito de usar a
mv -i
menos que pretenda sobrescribir archivos. Es posible que ya tenga un alias paramv
, pero eso solo se activa cuando escribemv
directamente en la línea de comando, no cuandomv
es invocado por un script o por elfind
comando.Además, si coloca un
/
después de un nombre que se supone que es el nombre de un directorio, recibirá un error si el directorio no existe o si hay un archivo con ese nombre que no es un directorio.Para evitar las trampas de
find
, puede utilizar la función de recorrido recursivo de directorio recursivo de bash. Primero debe activarlo con el comandoshopt -s globstar
(puede agregar esta línea a su~/.bashrc
. Luego:(Tenga en cuenta que en bash,
**/
también atraviesa enlaces simbólicos a directorios, y no hay forma de desactivarlo. Si desea un recorrido recursivo que no mire a través de enlaces simbólicos a directorios, use zsh o find).fuente
/
afterpictures
en el segundo conjunto de ejemplos? Es decir, ¿no debería estarmv foo.jpg pictures/
(con el/
) en ambosmv
comandos?Me temo que acaba de perder todas sus imágenes en ese único archivo. Es posible recuperar algunos archivos usando herramientas forenses como la más importante, pero la tasa de éxito disminuye cuanto más tiempo use los medios (disco). (para ser precisos, cuanto más tiempo se monte la partición )
La próxima vez, cuando se refiera a un directorio, agregue una barra diagonal y agregue la
-i
opción de solicitar confirmación en caso de que ya exista un archivo:fuente