如何判斷二進位檔 - Linux

Table of Contents

各位版友好

我有一個檔案但是不太確定他是不是二進位檔

我用vim開啟的時候,都會出現@@@@@@@@.........中間還有夾雜一些

plain text

但是用cat去讀取他的時候,反而全部都是輸出plain text,不知道這是為什麼?

所以cat有讀取二進位檔並且把他反編碼(ASCII)的能力?

假設我這個檔案叫做test

我用 file test

他會輸出test: data

請問輸出data就表示他是二進位檔嗎?

因為我測試 file /bin/bash

他反而會說的仔細一點,說他是執行檔:

/bin/bash: ELF 32-bit LSB executable

請問"data"跟"executable"有什麼差別?

--
~宅男的四個徵兆~
∠□ ○ ! * \○/ ★    (○ ?
╦╦└□ " ○□═ □   □>
║║√√ ╦══╦ ∥    |\
一回家就上PTT 每天想正妹 以當好人為樂 忘記正妹虧欠自己

--

All Comments

Elvira avatarElvira2012-10-16
因為null ('\0')在終端機上不會印出來
Oscar avatarOscar2012-10-19
vim看到的@就是指'\0'
Genevieve avatarGenevieve2012-10-21
executable:可執行檔,data:所有file不知到是什麼的東西
看你願不願意丟出來給大家看是什麼囉
Bennie avatarBennie2012-10-25
不過一般來說,很多\0的檔,常常是軟體拿來當database用的
Ula avatarUla2012-10-28
因為想讀什麼東西,就直接加offset就好,不用scanf/parse
Jake avatarJake2012-11-01
我知道的是cat 只能讀出ASCII的文字檔
Anonymous avatarAnonymous2012-11-01
經過編碼的執行檔和資料檔都會有亂碼,如有誤請指正@@
Kama avatarKama2012-11-04
資料格式檔(data):程式運作的當中會讀取特格式的檔案
Oscar avatarOscar2012-11-07
可查閱鳥哥”Linux 的檔案屬性與目錄配置“這篇
George avatarGeorge2012-11-10
就某個程式(也不知到是啥)用來存資料而己
Irma avatarIrma2012-11-13
cat只是把檔案的內容原樣吐到stdout而己,怎麼顯示是terminal
Adele avatarAdele2012-11-16
決定的,高興的話也可以實作一個把所有不在char set裡的東西都
顯示成hex的terminal.
Catherine avatarCatherine2012-11-18
$ cat /dev/zero不會顯示東西,因為terminal大多直接不理會\0