Filesystems

複製正在寫入的文件

  • March 16, 2021

我有一個寫入標準輸出的程序。它不會一次寫入所有資訊,它會進行計算然後寫入新位。程序的輸出被儲存在一個文件中。

$ ./theprogram.sh > results.csv

在腳本執行時,我複制results.csv以查看數字。之後,文件的下一個副本顯示沒有更改,即使應該在那裡添加一些記錄。我在寫入過程中複製後原始文件發生了什麼?新記錄是否被丟棄?

採用,

tail -f results.csv在文件增長的同時觀看文件,您可以通過以下方式擺脫尾巴Ctrl-C

less也會起作用。使用 less 命令G將您帶到文件的最後一行,然後F將跟隨,類似於tail上面。

通過三通管道例如。./theprogram.sh | tee results.csv 允許您在 stdout 上觀看輸出並同時記錄到文件中。

你的副本不應該有任何影響。但是,您正在執行一個腳本,該腳本中是否可能有一些東西會期望對輸出文件進行獨占訪問,如果它沒有得到它則中止?我個人對此表示懷疑。

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