Hum... tu veux faire ça "pour le plaisir" ou bien "pour un besoin" ???
Si c'est pour le plaisir de programmer, alors lance-toi mais c'est un gros défi. Si c'est pour un besoin, alors t'as plein d'outils disponibles sur le net (par exemple ici: http://www.active-undelete.com)
En tout état de cause, la récupération de fichiers effacés sur unix est impossible. C'est dû à la structure du système de fichiers Unix. En effet, un nom de fichier n'est qu'un label stocké dans un répertoire. Ce label est relié à un n° d'inode contenant le fichier (mais ce fichier peut lui-même être découpé en plein de parties éparpillées que seule l'inode sait retrouver).
Quand tu supprimes un fichier
1) l'inode disparait (et avec elle tous les renseignements sur le fichier plus les liens vers ses données)
2) le nom du fichier est effacé du répertoire dans lequel il se trouve
Même si t'arrives (avec beaucoup de chance) à récupérer l'inode, tu auras quand-même perdu le nom. C'est pour ça que "fsck", quand il trouve des inodes orphelines, leur donne un nom correspondant à leur n°...