Linux
如何查看我刪除的文件的內容,但程序仍在寫入
我開始了一項長期執行的工作(預計需要 6 天才能完成),並希望看到它的輸出,所以我做了:
$ nohup ./thejob.sh > out.txt
當我需要查看
tail - f
文件的工作進度時。但是
out.txt
文件增長太多了,我刪除了文件並再次創建了它。$ rm out.txt $ touch out.txt
在此之後,沒有輸出發送到文件。我認為這項工作失去了對文件的綁定。我可以看到作業正在執行,
top
但我再也看不到它的進度了。有什麼辦法可以再次看到嗎?
舊文件還沒有消失,如果你知道寫入它的程序的 PID,你就可以訪問它。你可以去
/proc/<pid>/fd
看看是1
哪個stdout
但是,這也意味著您沒有從嘗試刪除文件中回收任何空間。
此外,一旦程序退出,文件將被刪除。