Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 16/05/2010, à 17:48

Kevyn

Recuperer des .CHK apres crash volume windows

Bonjour,
bon je poste mon truc ici parce que je suis sous Ubuntu et que c'est un script bash ^^
Ce script permet de récupérer des fichiers CHK après le crash d'une partition windows (on se retrouve avec 10000fichiers chk dans lesquels se cachent vos données)
Je l'ai fait car un ami m'a demander si je pouvais faire quelque chose pour son DD externe et je me suis dit que ça serait cool de le faire tourner smile
Donc en fait, le script identifie le mime-type d'un fichier, crée un fichier du nom du mime-type et déplace ensuite dedans tous les fichiers avec un mime type identique.
le script est super simple a utiliser, soit vous lui spécifiez un fichier du répertoire et le script mettra dans un dossier tous les fichiers avec le même mime-type. Soit vous lancez le script sans arguments et là il prend le premier fichier du répertoire pour créer son dossier et déplacer puis ensuite il recommence 10 fois.
PS pour ceux qui savent pas, en simple le mime-type vous donnera l'extension a mettre a vos fichiers

#! /bin/bash
#Script de déplacement de fichier selon leur mimetype. Utile en cas de corruption d'un volume
#Windows (fichiers .CHK)
#Doit avoir d'autres usages, a vous de trouver ;)
#
#Useful script if you have a corrupted windows volume with plenty of .CHK files.
#This script will sort your files according to their mimetype (audio,video,doc,xls,jpg...)
## Author: Kevyn B. original on <http://www.forum.ubuntu-fr.org/>
#
#  This program is free software; you can redistribute it and/or modify
#  it under the terms of the GNU General Public License as published by
#  the Free Software Foundation; either version 2 of the License, or
#  (at your option) any later version.
# 
#  This program is distributed in the hope that it will be useful,
#  but WITHOUT ANY WARRANTY; without even the implied warranty of
#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#  GNU General Public License for more details.
# 
#  A copy of the GNU General Public License is available at
#  http://www.fsf.org/licenses/gpl.txt, you can also write to the
#  Free Software  Foundation, Inc., 59 Temple Place - Suite 330,
#  Boston, MA 02111-1307, USA.
#
#Usage: 
#	tri <filename> : specify a file to sort files according to its mimetype
#		spécifiez un fichier pour classer les fichiers correspondants à son mimetype
#	tri : the script will take the first file in the directory to sort the file according to
#its mimetype and will start again 10 times
#		le script selectionnera le premier fichier du répertoire pour classer les fichier 
#selon son mimetype et recommencera 10 fois
#
#
IFS=$'\n\t' #change le separateur de champs

####################déclaration de la fonction################################
function deplacement() { for i in $(ls ./*) #ls ./* ) #boucle pour faire tous les fichiers du repertoire

	do
		if [ -f "$i" ] && [ "`file -b -i \"$i\"`" = "$1" ]; #pour chaque fichier correspondant au mimetype du fichier témoin
		then  echo "Votre fichier est lisible et il s'agit  d'un fichier $2" && mv "$i" ./"$2" # affiche et transfere le fichier dans le dossier correspondant au mimetype
		else  echo "mimetype différent" #&& mv "$i" ./autre #si mimetype different du fichier témoin, le deplace dans ./autre
		fi 
	done } 

####################Début du script###########################################

	
	if [ -f "$1" ]; then arg="`file -b -i \"$1\"`" #teste le mimetype du fichier témoin
			argtr=$(echo "$arg" | tr "/" "-") #enlève le / du mimetype pour creer un dossier
			mkdir "$argtr" #cree un dossier correspondant au mimetype
			echo "création du dossier correspondant au mimetype du fichier..."
			sleep 1
			deplacement "$arg" "$argtr"

#si on a pas d'argument on prend le premier fichier du repertoire
			elif [ ! -e "$1" ]; then for ((t = 10; t >= 0; t -= 1)) #boucle pour plusieurs mimetype si pas d'arguments
			do 
			 sipasdarg=$(find . ! -name . -prune -type f| cut -b3- | sed '2,9999d' | sed ':a; /$/N; s/\n//; ta') 
			 echo "fichier choisi: $sipasdarg"
			 mimetype=`file -b -i "./$sipasdarg"` #identification du mimetype
			 mimetypetr=$(echo "$mimetype" | tr "/" "-") #on enleve le / pour creer le repertoire
			 echo "création du dossier correspondant au mimetype du fichier..."
			 mkdir "$mimetypetr"
			 sleep 1
			 deplacement "$mimetype" "$mimetypetr"
			done
 
else echo "vous avez selectionné un dossier au lieu d'un fichier"
 fi 
exit 0;

Si vous avez des idées pour l'améliorer je vous écoute wink

Kevyn

Hors ligne

#2 Le 14/02/2011, à 22:12

jdulain

Re : Recuperer des .CHK apres crash volume windows

Bonjour,
Je viens juste d'installer Linux en double boot avec windows... et là ma partition commune avec mes photos/vidéos et mails viens de devenir entièrement FOUND.000 et dedans il y a, je crois, 8481 ".CHK".
Pou récupérer tout ça, je fais quoi ?
Je copie/colle le texte ci-dessus dans un fichier que je mets dans le répertoire FOUND.000 ? (quelle extension pour que je puisse l'exécuter ?)

Merci pour vos réponses... parce que là je suis un peu en panique !!!

Cordialement,

Jérémie

Hors ligne

#3 Le 15/02/2011, à 10:03

Kevyn

Re : Recuperer des .CHK apres crash volume windows

tu copie colle ce fichier, tu le mets dans le dossier oui, ce sera plus simple. tu dois juste le copier coller dans un fichier.
Ensuite tu ouvres un terminal, tu vas dans le dossier Found.000, et ensuite tu fais:

chmod +x nomdetonfichier

avec le nom du fichier ou tu as mis le script et ensuite tu le lance en faisant

./nomdetonfichier

et ça va automatiquement trier tes fichiers par type.
Si jamais il reste des fichiers, relance le script.
Si tu as des question n'hésite pas wink

Dernière modification par Kevyn (Le 15/02/2011, à 10:04)

Hors ligne