不小心刪掉檔案 但是 inode 還留著 - Linux

Edwina avatar
By Edwina
at 2012-06-07T13:58

Table of Contents

想請問一個問題

我正在下載一個檔案,抓了老半天

不小心把他 rm 了,可是檔案還在下載

猜想檔案的 file descriptor 還開著

因為是 jdownloader,所以我 pidof java

接著 cd /proc/<pid>/fd

可以看到裡面有一個連結指向我的那個檔案

大概是

105 -> <path>:[deleted]

可是檔案還在下載,我不能照著網路上的說法把他 cp 或是 cat 出來

不然檔案會不完整

而且下載完以後 fd 就會被釋放,所以也不能等他下載完

想請問有什麼方法可以把這個檔案重新 link 回去嗎

我目前的作法是先 less 這個檔案,避免他下載後被關掉

最後從 less 的 fd 裡面重新抓回來

crc32 也一樣,證實了這個方法有效

但這個作法實在是太麻煩了,也要在下載完後作後處理

想請問有直接一點的作法嗎?

--
Tags: Linux

All Comments

Odelette avatar
By Odelette
at 2012-06-10T06:03
試試 tail -f <fd> | cat > <destination>
Freda avatar
By Freda
at 2012-06-13T05:33
<fd> 和 <destination> 是對應檔案之 fd 以及檔名
Jessica avatar
By Jessica
at 2012-06-15T01:20
那個 | 和 cat 應該可以省掉
Thomas avatar
By Thomas
at 2012-06-19T17:02
忘了tail預設最後10行. 此外tail也比較適用文字檔. 不過仍
可一試
Edith avatar
By Edith
at 2012-06-21T01:06
感謝,下次有機會來試試看
Audriana avatar
By Audriana
at 2012-06-23T16:52
google到有人寫了個fdlink() 可以去看看

無法開機 no init found

Xanthe avatar
By Xanthe
at 2012-06-07T10:12
大家好 我的電腦開機出現no init found try passing init=bootarg 這個問題 拜估狗大神和爬文之後 發現有不少人有同樣狀況 例如 http://ubuntuforums.org/showthread.php?t=1386549 http://way3sec.blog ...

.gvfs無法存取

Susan avatar
By Susan
at 2012-06-07T09:25
我在家目錄下 /home/thomas/ 下ls這個指令 發生下列錯誤 ls: cannot access .gvfs: Permission Denied 要如何解決gvfs無法存取的問題呢?(gvfs指的是gnome vfs) 對了 我用的是OpenSUSE 12.1+LXDE桌面環境 - ...

求救...現在不能開機,沒有grub也沒mbr

Zanna avatar
By Zanna
at 2012-06-06T23:02
※ 引述《itsasemen (這是殺洨)》之銘言: : 由於有一天我的win7突然「失眠」了,沒有辦法休眠 : 所以我按照了 : http://hao1990.blogspot.tw/2012/03/windows-7.html : 上面所說的方法,在opensuse下安裝了gparted : 但由於我的/ ...

網卡不互通

Aaliyah avatar
By Aaliyah
at 2012-06-06T22:03
小弟目前有試過用iptables做防火牆,可是並沒有效用 前文有先進提到說將帳號分內、外的方式,我們的Server並沒有做,所以就沒有試過 目前我的網卡分別取得的IP位置如下: eth0: 192.168.1.35 eth1: 192.168.43.17 iptables ruls如下: #丟掉目的 ...

LMDE Terminal 顯示中文

Eartha avatar
By Eartha
at 2012-06-06T20:03
各位版友大家好 我使用的系統是Linux Mint Debian Edition 使用繁體中文語系 有時會使用 按Ctrl+Alt+F1出現的Terminal來執行工作 但是這個陽春的Terminal似乎無法顯示中文 只會顯示菱形的符號 不知道有什麼方法 可以讓中文在這個Terminal正常顯示呢? ...