Files

在圖像上使用 cat 後會產生什麼?

  • January 13, 2013

假設一個人創建了一個像這樣的文件:

touch myFile

您使用 vim 或其他任何內容在其中輸入一些文本,然後使用cat myFile將內容吐出到終端中。

現在,當我在任何圖像上使用 cat 時會發生什麼?說,

cat myPNG.png

我只是得到一堆垃圾。它只是讓我思考該cat命令試圖做什麼,以及所有這些“垃圾”來自哪裡。只是好奇。

解釋文件如何在最低級別工作可能很有用:

文件是字節流,長度為零或更多。一個字節是 8 位。由於 8 位有 256 種組合,這意味著一個字節是從 0 到 255 的任意數字。所以每個文件在其最低級別都是從 0 到 255 的一大塊數字。

完全由程序和使用者來決定數字的“含義”。如果我們想儲存文本,那麼使用數字作為程式碼可能是個好主意,其中每個數字都分配有一個字母。這就是 ASCII 和 Unicode 的作用。如果我們想顯示文本,那麼建構一個設備或編寫一個程序來獲取這些數字並顯示一個類似於相應 ASCII/Unicode 程式碼的點陣圖可能是個好主意。這就是終端和終端仿真器所做的。

當然,對於圖形,我們可能希望數字代表像素及其顏色。然後我們需要一個程序來遍歷文件,讀取所有字節,並相應地渲染圖片。終端仿真器期望字節是 ASCII/Unicode 數字,並且對於相同的字節塊(或文件)會有不同的行為。

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