Linux

如何查看我刪除的文件的內容,但程序仍在寫入

  • March 31, 2017

我開始了一項長期執行的工作(預計需要 6 天才能完成),並希望看到它的輸出,所以我做了:

$ nohup ./thejob.sh > out.txt

當我需要查看tail - f文件的工作進度時。

但是out.txt文件增長太多了,我刪除了文件並再次創建了它。

$ rm out.txt
$ touch out.txt

在此之後,沒有輸出發送到文件。我認為這項工作失去了對文件的綁定。我可以看到作業正在執行,top但我再也看不到它的進度了。

有什麼辦法可以再次看到嗎?

舊文件還沒有消失,如果你知道寫入它的程序的 PID,你就可以訪問它。你可以去/proc/<pid>/fd看看是1哪個stdout

但是,這也意味著您沒有從嘗試刪除文件中回收任何空間。

此外,一旦程序退出,文件將被刪除。

引用自:https://unix.stackexchange.com/questions/355077