आप file
कमांड और कमांड का उपयोग करके यूनिक्स में एक निष्पादन योग्य की प्रकृति निर्धारित कर सकते हैं type
।
प्रकार
आप type
डिस्क पर एक निष्पादन योग्य स्थान निर्धारित करने के लिए उपयोग करते हैं जैसे:
$ type -a ls
ls is /usr/bin/ls
ls is /bin/ls
तो अब मुझे पता है कि ls
2 स्थानों में मेरे सिस्टम पर यहाँ स्थित है: /usr/bin/ls
& /bin/ls
। उन निष्पादनों को देखकर मैं देख सकता हूँ कि वे समान हैं:
$ ls -l /usr/bin/ls /bin/ls
-rwxr-xr-x. 1 root root 120232 Jan 20 05:11 /bin/ls
-rwxr-xr-x. 1 root root 120232 Jan 20 05:11 /usr/bin/ls
नोट: आप पुष्टि कर सकते हैं कि वे उपयोग करके cmp
या उनके आकार से परे समान हैं diff
।
अंतर के साथ
$ diff -s /usr/bin/ls /bin/ls
Files /usr/bin/ls and /bin/ls are identical
cmp के साथ
$ cmp /usr/bin/ls /bin/ls
$
फ़ाइल का उपयोग करना
यदि मैं उन्हें file
कमांड का उपयोग करके क्वेरी करता हूं :
$ file /usr/bin/ls /bin/ls
/usr/bin/ls: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=0x303f40e1c9349c4ec83e1f99c511640d48e3670f, stripped
/bin/ls: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=0x303f40e1c9349c4ec83e1f99c511640d48e3670f, stripped
तो ये वास्तविक भौतिक कार्यक्रम होंगे जिन्हें C / C ++ से संकलित किया गया है। यदि वे शेल स्क्रिप्ट थे, तो वे आम तौर पर इस तरह प्रस्तुत करते हैं file
:
$ file somescript.bash
somescript.bash: POSIX shell script, ASCII text executable
ईएलएफ क्या है?
ELF एक फाइल फॉर्मेट है , यह एक कंपाइलर का आउटपुट है gcc
, जैसे कि C / C ++ प्रोग्राम को कंपाइल करने के लिए उपयोग किया जाता है ls
।
कंप्यूटिंग में, निष्पादन योग्य और जोड़ने योग्य प्रारूप (ईएलएफ, जिसे पहले एक्स्टेंसिबल लिंकिंग प्रारूप कहा जाता है) निष्पादनयोग्य, वस्तु कोड, साझा पुस्तकालयों और कोर डंप के लिए एक सामान्य मानक फ़ाइल प्रारूप है।
यह आमतौर पर फ़ाइल नाम में निम्नलिखित एक्सटेंशन में से एक होगा: कोई नहीं, .o, .so, .elf, .prx, .puff, .bin