Files
當用作管道的一部分時,“cat”如何處理大文件?
假設我
cat
有一個大小為 10 GB 的文件,並且我通過管道將它傳輸到head
,cat
如果我的系統只有 2 GB 的 RAM 和 1 GB 的交換空間,它會工作嗎?我想知道內部細節。
cat
不需要記住它已經從輸入發送到輸出的文件的任何部分。換句話說,它使用**O(1)**記憶體。
head
也不需要記住它已經發送的部分文件,它只需要計算它們。此外,它甚至不需要讀取整個輸入;它可以在達到輸出請求的行數時停止。