Filesystems
複製正在寫入的文件
我有一個寫入標準輸出的程序。它不會一次寫入所有資訊,它會進行計算然後寫入新位。程序的輸出被儲存在一個文件中。
$ ./theprogram.sh > results.csv
在腳本執行時,我複制
results.csv
以查看數字。之後,文件的下一個副本顯示沒有更改,即使應該在那裡添加一些記錄。我在寫入過程中複製後原始文件發生了什麼?新記錄是否被丟棄?
採用,
tail -f results.csv
在文件增長的同時觀看文件,您可以通過以下方式擺脫尾巴Ctrl
-C
less
也會起作用。使用 less 命令G
將您帶到文件的最後一行,然後F
將跟隨,類似於tail
上面。通過三通管道例如。
./theprogram.sh | tee results.csv
允許您在 stdout 上觀看輸出並同時記錄到文件中。你的副本不應該有任何影響。但是,您正在執行一個腳本,該腳本中是否可能有一些東西會期望對輸出文件進行獨占訪問,如果它沒有得到它則中止?我個人對此表示懷疑。