Anyone know how cksum works?


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Anyone know how cksum works?
# 1  
Old 10-27-2004
Anyone know how cksum works?

hello all.

I'm not asking about the algorithm - or how it goes about computing the checksum - I'm asking how it views/looks at the files it does the cksum on.

For instance:

Say you had a directory named "dir_A"

And within this directory you had some files.

So:

dir_A
- file1
- file2
- file3

Do you have to step through dir_A and compute a cksum for EACH individual file?

For instance:

% cd dir_A
% cksum file1
% return some number
% cksum file2
% return some number
% cksum file3
% return some number

Or, can I just compute the cksum for the whole directory?

For instance:

% cksum dir_A
% return some number

If one of the files within dir_A changes and I redo the cksum is it safe to say that a valid cksum will be computed for the whole directory? What if file1 WITHIN dir_A changed - will the cksum change?

Or, do you have to compute a cksum for each individual file?

Thanks!!!
# 2  
Old 10-27-2004
Why didn't you try it to see???

You can't run checksum on a directory (or I couldn't).

To do a checksum on the files in the directory,

$ sum ./directory/*.*
Note that it won't do hidden files.
# 3  
Old 10-27-2004
You can cksum or md5 a directory. I am able to accomplish this on FreeBSD, but under Slackware, it does not appear to work.
If you want you can redirect the md5 into a txt file, so you can check it later.
Changing a file in the directory won't change the cksum, md5. (correction), but adding or removing files will.

you can issue
cksum A_dir
md5 A_dir

Last edited by locustfurnace; 10-28-2004 at 12:28 PM..
# 4  
Old 10-28-2004
Quote:
Originally posted by RTM
Why didn't you try it to see???

You can't run checksum on a directory (or I couldn't).

To do a checksum on the files in the directory,

$ sum ./directory/*.*
Note that it won't do hidden files.
LOL..

I did try it. It worked for me.

I'm running digital unix tru64 4.0f.

%cksum dir_A
% 12345678 8908 dir_A

I changed a file in dir_A and got another number.

I was just curious if the number computed can be reliable or am I missing something...

Thanks for the replies...
# 5  
Old 10-28-2004
I believe that the cksum is being computed on the directory entry itself - i.e. the actual "file" on disk that contains a list of the files that the directory contains.

e.g. under HP-UX 10.20
If you do
$ sum dir_A
2022 2 dir_A
This is the same as
$ cat dir_A | sum
2022 2

Then,
Code:
$ sum dir_A
2022 2 dir_A
$ touch dir_A/foo
$ sum dir_A
2492 2 dir_A
$ vi dir_A/foo		# add two hundred lines of whatever
$ sum dir_A
2492 2 dir_A		# see - file has changed, but checksum hasn't
$ rm dir_A/foo
$ sum dir_A		
2022 2 dir_A		# now checksum has returned to previous value

So, from what I can see, only the addition and removal of files within the directory (thus changing the directory entry) will actually modify the checksum. If you change the contents of a file, this won't make a difference.

It looks you would have to do something like (as previously mentioned)
$ sum dir/* >list # or cksum dir/*, md5sum dir/*, whatever
To get a list of checksums and then periodically verify those.

Same results seem to appear with cksum.

I don't know if this helps/answers any questions, but it's a result of my probing around.

Oh, some versions of Linux/UNIX don't allow you to compute checksums on directories, also mentioned above....
# 6  
Old 10-28-2004
Quote:
Originally posted by zazzybob
I believe that the cksum is being computed on the directory entry itself - i.e. the actual "file" on disk that contains a list of the files that the directory contains.
I don't know if this helps/answers any questions, but it's a result of my probing around.

Oh, some versions of Linux/UNIX don't allow you to compute checksums on directories, also mentioned above....
That's what I was curious about.

I got mixed results when I tested it myself, but was unable to figure out what was going on.

That's very helpful.

Thanks.
Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

cksum does not give me crc32

Is cksum the right command to calculate the crc32 checksum value? I tried it for a number of files now and every time the results dont match. So there is nothing wrong with the file. Also, cksum gives me an all numerical value while crc32 is alpha numeric. What am I doing wrong? Thanks (9 Replies)
Discussion started by: utamav
9 Replies

2. Shell Programming and Scripting

EEPROM CKSUM? what is this?

Hi all, So I have a binary file and I need to generate an expected EEPROM checksum for it. Ideally, I would like to input the file (with the path) and output a computed checksum. Ive been using (cksum file1) with no avail and I was just curious as to whether there is such thing as EEPROM cksum,... (1 Reply)
Discussion started by: TeamUSA
1 Replies

3. UNIX for Dummies Questions & Answers

sorting cksum output.

Hi guys, I have a service directory with a lot of files in. I have to cksum the whole directory and compare it to a release note document. However the problem I have is the files are listed in different lines when running cksum as they are in the release doc. Therefore cksum shows... (1 Reply)
Discussion started by: Stin
1 Replies

4. UNIX for Advanced & Expert Users

Cksum dependencies

Hi, On what factors does the cksum depend. If i build 2 machines exactly the same, then can i get the checksum of 2 compiled files same. Thanks (3 Replies)
Discussion started by: vibhor_agarwali
3 Replies

5. Shell Programming and Scripting

using cksum

hi, I am trying to use the cksum feature in unix. when i make a call to it i get returned something along the lines of: 4603435 14 file3 how do i get the first part of this response only; i.e: 4603435 I'm trying to use at a way without the use of sed and creating temp... (4 Replies)
Discussion started by: leeRoberts2007
4 Replies

6. Shell Programming and Scripting

The cksum Problem

Hi, I have a working script, well it works on my machine but when I try it on others the cksum section does not work properly (I know the scripting is not of a high quality but I'm just trying to get it working) Heres the script: #!/bin/sh case $# in 0) echo "usage: enshar filename... (7 Replies)
Discussion started by: Dim-Wit
7 Replies

7. Shell Programming and Scripting

cksum question

Hi there, I have a query about cksum. I'm running a script on the Unix box and in a script the cksum result differs from when I run it manually. As far as I can see the file is not being changed, is there any other times that the cksum would be different. (4 Replies)
Discussion started by: rjsha1
4 Replies

8. UNIX for Dummies Questions & Answers

cksum parts of a file

Every time we build an executable the date and time are put into the file, I need to run checksum on just the working lines.(IE, no header files) Is this even possible, if so how would I go about it? I am using a HP-UX server any help you can give me will be greatly appreciated. Thanks (6 Replies)
Discussion started by: crazykelso
6 Replies

9. UNIX for Dummies Questions & Answers

cksum all executables on drive

I know I can run the cksum command for multiple files in a directory and send the results to a new file. EX.) # cd /usr # cksum *_ex* > /tmp/cksumusr.txt But I can't figure out how to run this command on multiple files in all directories on drive. Is it possible to do this, without having... (2 Replies)
Discussion started by: crazykelso
2 Replies
Login or Register to Ask a Question