1. 程式人生 > >Linux下的檢視檔案格式命令:file

Linux下的檢視檔案格式命令:file

###Date: 2017/9/3

Linux下的檢視檔案格式命令: file fileaname

e.g

 

  第一個後面顯示not stripped,第二個後面顯示stripped,這兩者有什麼區別呢?

strip命令可以用來去除目標檔案中的符號表。

a.outelfExecutable and Linking Format)。這兩種格式中都有符號表(symbol table),其中包括所有的符號(程式的入口點還有變數的地址等等)。在elf格式中符號表的內容會比a.out格式的豐富的多。但是這些符號表可以用 strip工具去除,這樣的話這個檔案就無法讓debug程式跟蹤了,但是會生成比較小的可執行檔案。

a.out檔案中的符號表可以被完全去除,但是 elf中的在載入執行時起著重要的作用,所以用strip永遠不可能完全去除elf格式檔案中的符號表。但是用strip命令不是完全安全的,比如對未連線的目標檔案來說如果用strip去掉符號表的話,會導致聯結器無法連線。

例如:

程式碼:

$:gcc -c hello.c 

$:ls hello.c hello.o

gcchello.c編譯成目標檔案hello.o

程式碼:

$:strip hello.o

strip去掉hello.o中的符號資訊。

程式碼:

$:gcc hello.o /usr/lib/crt1.o /usr/lib/crti.o /usr/lib/crtn.o –o hello

/*

$:gcc hello.o /usr/lib/gcc/i686-pc-linux-gnu/3.4.5/../../../crt1.o7

: In function `_start'

: init.c: (.text+0x18) 

: undefined reference to `main' collect2

: ld returned 1 exit status

*/ 

再用gcc連線時,聯結器ld報錯。說明在目標檔案中的符號起著很重要的作用,如果要釋出二進位制的程式的話,在debug後為了減小可執行檔案的大小,可以用strip來除去符號資訊但是在程式的除錯階段還是不要用strip為好。


相關推薦

Linux檢視檔案格式命令file

###Date: 2017/9/3 Linux下的檢視檔案格式命令: file fileaname e.g     第一個後面顯示not stripped,第二個後面顯示stripped,這兩者有什麼

Linux檢視檔案常用命令—cat,more,less,head,tail

【cat】  功能:1)顯示整個檔案。如:$ cat filename        2)把檔案串聯接後傳到基本輸出,如將幾個檔案合併為一個檔案或輸出到螢幕。如:$ cat file1 file2 > file  引數詳解:  -n或-number:由1開始

Linux檢視檔案和資料夾佔用記憶體大小、刪除日誌 命令

轉:https://www.cnblogs.com/lixuwu/p/5944062.html 閱讀目錄 1 Linux下檢視檔案和資料夾大小 2 刪除系統日誌等 3 實踐 場景:在sts中執行自動部署時候maven提示No space left on d

Linux檢視檔案內容的常見命令

檢視檔案內容的命令: cat 由第一行開始顯示內容,並將所有內容輸出 tac 從最後一行倒序顯示內容,並將所有內容輸出 more 根據視窗大小,一頁一頁的現實檔案內容 less 和more類似,但其優點可以往前翻頁,而且進行可以搜尋字元 head

Linux檢視檔案內容的幾種常用命令

【常用】 1,cat     由第一行開始顯示內容,並將所有內容輸出 cat的功能是將檔案從第一行開始連續的將內容輸出在螢幕上。但是cat並不常用,原因是當檔案大,行數比較多時,螢幕無法全部容下時,只能看到一部分內容。 cat語法:cat [-n]  檔

Windows10在cmd目錄檢視當前目錄檔案命令dir)

本文主要介紹Windows10在cmd目錄下,檢視當前目錄下的檔案指令。想要檢視當前指定碟符所在目錄下的檔案,可以敲入如下命令1.1首先敲入命令  D:  則進入D盤目錄,如下圖所示:1.2進入D盤目錄後,敲入命令  dir  則顯示D盤下的所有檔案,如下圖所示:入上所述,在

Linux檢視檔案和資料夾大小的df和du命令聯絡與區別

前面經常需要對Host裡的多個VM進行一些操作如take snapshot等,需要檢視容量時經常用到df -h,但是用到du  的比較少,當需要檢視具體的某個資料夾下的各個檔案 的大小時就需要用到du , 看了下面的介紹當使用 du -h --max-depth=1 wor

linux 檢視檔案屬性的命令

1,ls    ls -a 檢視所有檔案    ls -l 檢視詳細的屬性  2,lsattr    檢視檔案的擴充套件屬性,    如果檔案被 chattr +i   添加了防寫,    用lsattr可以看到新增的屬性3,file 檢視檔案的型別4,stat    檢視檔

linux檢視檔案第20-30行內容的N種方法及命令介紹

首先建立檔案及填充內容 [root@VM_179_129_centos tmp]# seq 100 > /tmp/seq.txt 結果展示 … 命令介紹:seq 用於產生從某個

Linux檢視檔案精確到毫秒的修改時間

今天排查一個BUG遇到一個問題,錯誤日誌中列印的時間精確到秒,但當根據日誌中的時間去找對應檔案進行驗證的時候,發現通過 ls -l 或者 ll 命令,都無法檢視到檔案精確到秒的修改時間。    最後通過查閱,發現了以下兩種方式可以檢視檔案秒級別的修改時間: 方式一:ls -

記一次問題,linux檔案格式的問題

今天做的一個功能,需要將mysql中的資料,存入redis中去,使用了管道的命令,將需要儲存的欄位,拼接為redis命令的檔案,然後,利用linux的管道命令,將資料存入redis中去。   cat redis_commend.txt | redis-cli -p 9600

Linux檢視檔案和資料夾大小

zt:http://www.cnblogs.com/benio/archive/2010/10/13/1849946.html 當磁碟大小超過標準時會有報警提示,這時如果掌握df和du命令是非常明智的選擇。     df可以檢視一級資料夾大小、使用比例、檔案系統及其

Linux檢視檔案和資料夾大小(df&du)

df 用法:df [選項]… [檔案]… 顯示每個檔案所在的檔案系統的資訊,預設顯示全部的檔案系統 常用選項 -h, –human-readable 大小顯示為人類易讀形式 (e.g., 1K

linux檢視檔案第幾行內容的方法

一,方法1 nl file-name |sed -n '5p'檢視第五行 二,方法2 head -n file_name|tail -1 檢視第n行三,方法3  .輸出一個檔案的第4行sed -

linux 檢視檔案的完整時間資訊

$ stat test.txt   File: `test.txt'   Size: 0               Blocks: 0          IO Block: 4096   regular empty file Device: 801h/2049d      Inode: 4980751   

linux檔案操作命令

首先,大家明白一個概念,非常重要的一個概念“在linux上,一切皆檔案”,“在linux上,一切皆檔案”,“在linux上,一切皆檔案”,重要的事情說三遍。。。 明白了檔案的重要性,那麼,檔案都有哪些型別的呢?好比人有白人,黃人,黑人之分,檔案有普通檔案,目錄檔案,管道檔案

linux常用檔案傳輸命令

 因為工作原因,需要經常在不同的伺服器見進行檔案傳輸,特別是大檔案的傳輸,因此對linux下不同伺服器間資料傳輸命令和工具進行了研究和總結。主要是rcp,scp,rsync,ftp,sftp,lftp,wget,curl。 rcp rcp不是一種安全的的傳輸檔案的方式

Linux檢視檔案和資料夾大小--df,du

當磁碟大小超過標準時會有報警提示,這時如果掌握df和du命令是非常明智的選擇。    df可以檢視一級資料夾大小、使用比例、檔案系統及其掛入點,但對檔案卻無能為力。    du可以檢視檔案及資料夾的大小。    兩者配合使用,非常有效。比如用df檢視哪個一級目錄過大,然後用d

linux檢視檔案編碼及修改編碼

1.在Vim中可以直接檢視檔案編碼 :set fileencoding 即可顯示檔案編碼格式。 如果你只是想檢視其它編碼格式的檔案或者想解決用Vim檢視檔案亂碼的問題,那麼你可以在 ~/.vimrc 檔案中新增以下內容: set encoding=ut

Linux常用檔案操作命令總結

拾取一些常用的檔案命令。 改變目錄 cd //進入使用者預設工作目錄 cd .. //進入上一級目錄 cd ap