Récupérer des fichiers "perdus" qui ne sont pas perdus.
classé dans 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.