看板 Linux 關於我們 聯絡資訊
各位版友好 我有一個檔案但是不太確定他是不是二進位檔 我用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 每天想正妹 以當好人為樂 忘記正妹虧欠自己 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 36.239.31.68
kdjf:因為null ('\0')在終端機上不會印出來 10/13 17:18
kdjf:vim看到的@就是指'\0' 10/13 17:20
kdjf:executable:可執行檔,data:所有file不知到是什麼的東西 10/13 17:21
kdjf:看你願不願意丟出來給大家看是什麼囉 10/13 17:21
kdjf:不過一般來說,很多\0的檔,常常是軟體拿來當database用的 10/13 17:22
kdjf:因為想讀什麼東西,就直接加offset就好,不用scanf/parse 10/13 17:23
chenry:我知道的是cat 只能讀出ASCII的文字檔 10/13 17:44
chenry:經過編碼的執行檔和資料檔都會有亂碼,如有誤請指正@@ 10/13 17:45
以下是我提到的test http://tinyurl.com/8dbov4q 我用cat test輸出是plain text 但用vim開啟會變成@@@@@@... 所以我不確定它到底是一個什麼樣的檔案... ※ 編輯: Arim 來自: 36.239.31.68 (10/13 17:54)
chenry:資料格式檔(data):程式運作的當中會讀取特格式的檔案 10/13 17:53
chenry:可查閱鳥哥”Linux 的檔案屬性與目錄配置“這篇 10/13 17:55
kdjf:就某個程式(也不知到是啥)用來存資料而己 10/14 00:49
kdjf:cat只是把檔案的內容原樣吐到stdout而己,怎麼顯示是terminal 10/14 00:50
kdjf:決定的,高興的話也可以實作一個把所有不在char set裡的東西都 10/14 00:51
kdjf:顯示成hex的terminal. 10/14 00:51
kdjf: $ cat /dev/zero不會顯示東西,因為terminal大多直接不理會\0 10/14 00:52