Tail
如何查看大文件中可能在任何地方發生的更改?
我想查看一個文件以了解可能發生的更改。通常,使用
tail -f file
orwatch -d cat file
就可以了。但是,file
我正在監視的內容太大而無法在一個螢幕上顯示,並且更改不一定發生在特定位置(例如,結尾)。我如何觀察變化?理想情況下,我想要這樣
watch -d cat file
的滾動,以便在螢幕上至少可以看到一個變化。如果您想知道這是做什麼用的,我正在使用鋰來最小化一個大文件,並且我喜歡觀察它的進度,因為最小化過程通常會揭示有關潛在錯誤的提示。
watch=/path/to/file tmp="$watch".$$ cp "$watch" "$tmp".1 while true; do clear cp "$watch" "$tmp".2 diff -u "$tmp".1 "$tmp".2 mv "$tmp".2 "$tmp".1 sleep 10 done
如果您擔心整個文件的這些副本所需的空間和/或時間,您必須意識到實際上沒有辦法解決這個問題來實現您的要求。
watch -d
還必須保留最後一個輸出以將其與目前輸出進行比較。
使用無限循環輪詢文件是個壞主意。我的建議是安裝 nodejs 並使用fs.watchFile。
fs.watchFile('message.text', (curr, prev) => { console.log(`the current mtime is: ${curr.mtime}`); console.log(`the previous mtime was: ${prev.mtime}`); });
如果您想要終端的單行命令,請執行以下操作。
node -e "fs.watchFile('message.text', (curr, prev) => { console.log(`the current mtime is: ${curr.mtime}`); console.log(`the previous mtime was: ${prev.mtime}`); });"