J'ai un fichier en cours de téléchargement (à partir d'une source difficile à télécharger à nouveau), mais supprimé accidentellement de l'espace de noms du système de fichiers (/ tmp / blah), et j'aimerais récupérer ce fichier.
Normalement, je pourrais juste cp /proc/$PID/fd/$FD /tmp/blah
, mais dans ce cas, cela ne me procurerait qu'un instantané partiel, car le fichier est toujours en cours de téléchargement. De plus, une fois le téléchargement terminé, le processus de téléchargement (par exemple Chrome) fermera le FD.
Est-il possible de récupérer par inode / créer un lien dur? D'autres solutions? Si cela fait une différence, je suis principalement concerné par ext4.
la source
Le projet fdlink , composé d'un module du noyau Linux et d'une application simple, prétend créer un nouveau lien vers un descripteur de fichier ouvert. Je ne l'ai pas essayé.
la source
Cela fera le travail, mais pas en récupérant l'inode:
Ou arrêtez simplement le téléchargement manuellement dans Chrome si vous ne voulez pas tuer tout le navigateur.
la source
Si vous voulez faire un lien dur à ce sujet, vous devez utiliser l'option -s (voir
man ln
) donc dans le répertoire fd exécutezls -f
et trouvez le numéro de fichier (principalement des nombres à deux chiffres) et faites unln NUMBER destination-file -s
la source