LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Linux - Newbie (https://www.linuxquestions.org/questions/linux-newbie-8/)
-   -   Binary files (https://www.linuxquestions.org/questions/linux-newbie-8/binary-files-701181/)

john83reuben 01-31-2009 01:47 AM

Binary files
 
Hi guys,

I just wana know something. IN unix, we have regular files. THere are two types of regular files : 1) Text files and 2) Binary files

MY question is what are the example of binary files in Unix system. Where are the locations ( few examples will do )

If nt mistaken, in /bin ... there are many binary files,issit? for example is /bin/echo a binary file .

If yes, y do they made is as binary file. Y not make is normal text file, so that we can able to modify whateva unix commands for fun.


Hope 2 receive an answer.

Thank you

lazlow 01-31-2009 02:19 AM

You can modify whatever you like. Just grab the source rpm (or pure source), modify it, rebuild it, and then install it. You can do this with the vast majority of packages on most linux distros. There are a few packages that the source is not available (mostly drivers, nvidia, etc).

lazlow 01-31-2009 02:19 AM

Double posted for some reason.

jdkaye 01-31-2009 03:56 AM

Quote:

Originally Posted by john83reuben (Post 3426987)
Hi guys,

I just wana know something. IN unix, we have regular files. THere are two types of regular files : 1) Text files and 2) Binary files

MY question is what are the example of binary files in Unix system. Where are the locations ( few examples will do )

If you look in /usr/bin you will see loads of binary and executable files. Note that not all binaries are executable and not all executables are binary (a shell script would be an example of the latter).

Quote:

If nt mistaken, in /bin ... there are many binary files,issit? for example is /bin/echo a binary file .
Yes. If you want to see loads more try
Code:

ls /usr/bin
at a terminal and you'll get a long list of binaries.

Quote:

If yes, y do they made is as binary file. Y not make is normal text file, so that we can able to modify whateva unix commands for fun.
Not just in *nix but in all computers, most commands are compiled from source code (which can be written, edited and understood by [some] humans) and turned into binary code in a form that computers understand. If you want to change a command, then you can get the source code (this is possible in linux but not usually possible in Windows or Mac stuff) and play with it all you want and then recompile and voilą, you have a new and improved command.

I hope that helps you.
Cheers,
jdk

salasi 01-31-2009 05:40 AM

It looks like a while playing with the file command, and maybe even reading its manpage, is called for.

JulianTosh 01-31-2009 07:39 AM

Actually, there is only one kind of file in any operating system: binary files. A "text" file simply has characters in it that are human readable. A "binary" file has data that is encoded so that a computer program can efficiently interpret the information inside.

An interesting *nix comand is 'file'. It will tell you what a file is based on know patterns, usually headers or the first couple of bytes in the file. Try it: 'file /etc/passwd' or 'file /usr/bin/bash' and see what it tells you.

Bottom line is, they are all simply files - streams of bytes.

john83reuben 02-02-2009 09:17 AM

ok, how bout hardlinks. base on my understanding, Linux files don't actually live in directories. They are assigned an inode number, which Linux uses to locate the physical files.

So my question is,

for example:
when u ls -il
155719 -rw-r--r-- 1 john users 0 2009-02-02 23:13 data1
155720 -rw-r--r-- 1 john users 0 2009-02-02 23:13 data2
155721 lrwxrwxrwx 1 john users 5 2009-02-02 23:13 data3 -> data1

we have three files. I created a symbolic link based on data1. So does it mean that, data1 and data2 are hardlinks???( Y i say data1 and data2 are hardlinks, because the physical file is in somewhere, it uses the inode number to get to the physical file).

Am i correct here???? please advice..


Thank you

chrism01 02-02-2009 06:33 PM

Try this: http://publib.boulder.ibm.com/iserie...mstlinkcmp.htm


All times are GMT -5. The time now is 05:26 PM.