Des geekeries, de la MAO, de tout et de rien…
Je suis
Charlie

Récupérer des fichiers "perdus" qui ne sont pas perdus.

Icône auteur nah, Icône canondrier 15 octobre 2011, Icône commentaire
Mots clés Icône catégorie geekeries, GNU/Linux, Brick, classé dans Icône catégorie Geekeries, Linux

En jouant avec ma carte micro SD (un coup dans le téléphone, un coup dans le lecteur mp3), j'ai fini par la retirer de l'un de ces deux appareils sans la "démonter" (umount, "Éjecter"…). Manque de chance, 1> la carte est formatée en FAT32, 2> les données ont été corrompues. Résultat: 6,86 Go de données de perdues.


Un petit tour sous Windows XP (seule machine sous la main à ce moment là), et une vérification de disque avec recherche de secteurs défectueux, corriger les erreurs (ou des noms d'options comme ça), et je me retrouve avec un joli dossier FOUND.001 contenant à priori mes fichiers disparus.

Seul problème: les noms des fichiers sont perdus, et à la place, je me retrouve avec plein plein de fichiers "FILE0001.CHK", "FILE0002.CHK", dont la taille varie entre 4 ko et 85 Mo.

Pour retrouver quel fichier correspond à quoi, j'ai d'abord utilisé la commande "file", disponible sous n'importe quel OS un rien évolué (donc, pas sous Windows).

Ci-dessous, un petit exemple de résultat de la commande "file". Les noms des fichiers sont discontinus, car j'ai déjà récupéré une partie des fichiers, Cf. plus bas.

FILE0844.CHK: GIF image data, version 89a, 77 x 15
FILE0845.CHK: GIF image data, version 89a, 219 x 63
FILE0846.CHK: data
FILE0847.CHK: GIF image data, version 89a, 88 x 31
FILE0848.CHK: data
FILE0849.CHK: HTML document text
FILE0851.CHK: data
FILE0852.CHK: GIF image data, version 89a, 88 x 31
FILE0853.CHK: GIF image data, version 89a, 77 x 15
FILE0854.CHK: GIF image data, version 89a, 219 x 63
FILE0855.CHK: data
FILE0856.CHK: GIF image data, version 89a, 88 x 31
FILE0857.CHK: data
FILE0870.CHK: data
FILE0871.CHK: JVT NAL sequence
FILE0930.CHK: data
FILE0931.CHK: data
FILE0932.CHK: data
FILE0936.CHK: data
FILE0943.CHK: XML 1.0 document text
FILE0955.CHK: HTML document text
FILE0956.CHK: data
FILE0957.CHK: GIF image data, version 89a, 88 x 31
FILE0958.CHK: GIF image data, version 89a, 77 x 15
FILE0959.CHK: GIF image data, version 89a, 219 x 63
FILE0960.CHK: data
FILE0961.CHK: GIF image data, version 89a, 88 x 31
FILE0965.CHK: HTML document text
FILE0968.CHK: data
FILE0969.CHK: GIF image data, version 89a, 88 x 31
FILE0970.CHK: GIF image data, version 89a, 77 x 15
FILE0971.CHK: GIF image data, version 89a, 219 x 63
FILE0972.CHK: data
FILE0973.CHK: GIF image data, version 89a, 88 x 31
FILE0983.CHK: PNG image data, 500 x 453, 8-bit/color RGB, non-interlaced
FILE0984.CHK: data
FILE0985.CHK: data
FILE0986.CHK: data
FILE1001.CHK: data
FILE1002.CHK: JVT NAL sequence
FILE1041.CHK: data
FILE1042.CHK: JVT NAL sequence
FILE1045.CHK: data
FILE1050.CHK: data
FILE1051.CHK: data
FILE1053.CHK: data
FILE1068.CHK: data
FILE1070.CHK: data
FILE1076.CHK: data
FILE1077.CHK: JVT NAL sequence
FILE1084.CHK: data
FILE1092.CHK: data
FILE1093.CHK: data
FILE1095.CHK: data
FILE1132.CHK: data
FILE1136.CHK: data
FILE1137.CHK: JVT NAL sequence
FILE1154.CHK: data
FILE1155.CHK: data
FILE1156.CHK: JVT NAL sequence
FILE1169.CHK: data
FILE1170.CHK: JVT NAL sequence
FILE1177.CHK: data
FILE1178.CHK: JVT NAL sequence
FILE1179.CHK: XWD X Window Dump image data, 2686976x6647399x1296891904
FILE1180.CHK: XWD X Window Dump image data, "F", 327680x7156068x1160839168
FILE1181.CHK: XWD X Window Dump image data, 327680x7156068x1160839168
FILE1182.CHK: XWD X Window Dump image data, "CON", 1507328x6647399x1296891904
FILE1183.CHK: XWD X Window Dump image data, 327680x7156068x1160839168
FILE1184.CHK: XWD X Window Dump image data, 2686976x6647399x1296891904
FILE1186.CHK: data
FILE1187.CHK: JVT NAL sequence
FILE1210.CHK: data
FILE1211.CHK: data
FILE1212.CHK: JVT NAL sequence
FILE1220.CHK: data
FILE1232.CHK: data
FILE1251.CHK: data
FILE1262.CHK: data
FILE1263.CHK: JVT NAL sequence
FILE1276.CHK: GIF image data, version 89a, 400 x 336
FILE1277.CHK: data
FILE1278.CHK: JVT NAL sequence
FILE1281.CHK: data
FILE1282.CHK: JVT NAL sequence
FILE1289.CHK: data
FILE1290.CHK: JVT NAL sequence
FILE1292.CHK: data
FILE1293.CHK: JVT NAL sequence
FILE1294.CHK: data
FILE1295.CHK: JVT NAL sequence
FILE1296.CHK: AppleDouble encoded Macintosh file
FILE1297.CHK: AppleDouble encoded Macintosh file
FILE1298.CHK: AppleDouble encoded Macintosh file
FILE1299.CHK: AppleDouble encoded Macintosh file
FILE1300.CHK: AppleDouble encoded Macintosh file
FILE1301.CHK: AppleDouble encoded Macintosh file
FILE1302.CHK: AppleDouble encoded Macintosh file
FILE1303.CHK: AppleDouble encoded Macintosh file
FILE1304.CHK: AppleDouble encoded Macintosh file
FILE1305.CHK: AppleDouble encoded Macintosh file
FILE1306.CHK: AppleDouble encoded Macintosh file
FILE1307.CHK: AppleDouble encoded Macintosh file
FILE1308.CHK: AppleDouble encoded Macintosh file
FILE1309.CHK: AppleDouble encoded Macintosh file
FILE1310.CHK: AppleDouble encoded Macintosh file
FILE1311.CHK: AppleDouble encoded Macintosh file
FILE1312.CHK: AppleDouble encoded Macintosh file
FILE1313.CHK: AppleDouble encoded Macintosh file
FILE1314.CHK: AppleDouble encoded Macintosh file
FILE1350.CHK: data
FILE1351.CHK: JVT NAL sequence
FILE1352.CHK: data
FILE1353.CHK: JVT NAL sequence
FILE1388.CHK: data
FILE1389.CHK: JVT NAL sequence
FILE1394.CHK: PNG image data, 600 x 600, 8-bit/color RGB, non-interlaced
FILE1398.CHK: data
FILE1422.CHK: data
FILE1423.CHK: JVT NAL sequence

Première nouvelle, les fichiers sont "lisibles", ou tout du moins, reconnus.

Dans un premier temps, il serait bon de trier les fichiers. j'ai d'abord créé des répertoires, un par type de fichiers, notamment mp3, mp4, ogg, flac, jpg, png, etc…

Ensuite, avec quelques petites boucles for (sans les 3 ours cette fois (private joke)), j'ai copié les fichiers de type "mp3" dans le répertoire mp3, de type mp4 vers le dossier mp4, etc…

Par exemple, pour les fichiers .gif :

for file in $(file * | grep "GIF" | cut -d':' -f1); do mv $file gif/; done
cd gif
for file in *.CHK; do mv "$file" "${file%.CHK}.gif"; done

À noter que j'ai d'abord copié les fichiers, puis renommé ces fichiers. J'aurais pu faire ces deux opérations en une fois, mais sur le coup, je n'y avais pas pensé (facepalm en écrivant cet article)

Maintenant, je me retrouve avec des fichiers "FILE0042.flac", "FILE0457.ogg", etc… Ces fichiers sont lisibles, mais il faudrait les renommer correctement. Par exemple, "Bitches - Mindless Self Indulgence - Frankenstein Girls Will Seem Strangely Sexy.flac" est plus parlant que "FILE0035.flac

La suite, pour renommer automatiquement les fichiers à partir de leurs "tags" est en cours de rédaction.