[問題] 不小心刪掉檔案 但是 inode 還留著

看板Linux作者 (LYSin8)時間13年前 (2012/06/07 13:58), 編輯推噓0(007)
留言7則, 3人參與, 最新討論串1/1
想請問一個問題 我正在下載一個檔案,抓了老半天 不小心把他 rm 了,可是檔案還在下載 猜想檔案的 file descriptor 還開著 因為是 jdownloader,所以我 pidof java 接著 cd /proc/<pid>/fd 可以看到裡面有一個連結指向我的那個檔案 大概是 105 -> <path>:[deleted] 可是檔案還在下載,我不能照著網路上的說法把他 cp 或是 cat 出來 不然檔案會不完整 而且下載完以後 fd 就會被釋放,所以也不能等他下載完 想請問有什麼方法可以把這個檔案重新 link 回去嗎 我目前的作法是先 less 這個檔案,避免他下載後被關掉 最後從 less 的 fd 裡面重新抓回來 crc32 也一樣,證實了這個方法有效 但這個作法實在是太麻煩了,也要在下載完後作後處理 想請問有直接一點的作法嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.243.89

06/07 16:58, , 1F
試試 tail -f <fd> | cat > <destination>
06/07 16:58, 1F

06/07 16:59, , 2F
<fd> 和 <destination> 是對應檔案之 fd 以及檔名
06/07 16:59, 2F

06/07 17:00, , 3F
那個 | 和 cat 應該可以省掉
06/07 17:00, 3F

06/07 17:07, , 4F
忘了tail預設最後10行. 此外tail也比較適用文字檔. 不過仍
06/07 17:07, 4F

06/07 17:07, , 5F
可一試
06/07 17:07, 5F

06/07 18:46, , 6F
感謝,下次有機會來試試看
06/07 18:46, 6F

06/07 22:50, , 7F
google到有人寫了個fdlink() 可以去看看
06/07 22:50, 7F
文章代碼(AID): #1Fq4C8SJ (Linux)