Files

當用作管道的一部分時,“cat”如何處理大文件?

  • February 3, 2017

假設我cat有一個大小為 10 GB 的文件,並且我通過管道將它傳輸到headcat如果我的系統只有 2 GB 的 RAM 和 1 GB 的交換空間,它會工作嗎?我想知道內部細節。

cat不需要記住它已經從輸入發送到輸出的文件的任何部分。換句話說,它使用**O(1)**記憶體。

head也不需要記住它已經發送的部分文件,它只需要計算它們。此外,它甚至不需要讀取整個輸入;它可以在達到輸出請求的行數時停止。

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