Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 11 Sep 2012 22:06:58 -0700
From:      Gary Kline <kline@thought.org>
To:        kpneal@pobox.com
Cc:        FreeBSD Mailing List <freebsd-questions@freebsd.org>
Subject:   Re: cksum entire dir??
Message-ID:  <20120912050658.GA11860@ethic.thought.org>
In-Reply-To: <20120912011813.GA2305@neutralgood.org>
References:  <20120911213804.GA9817@ethic.thought.org> <20120912011443.5df17cf2.freebsd@edvax.de> <20120912002408.GA10496@ethic.thought.org> <20120912011813.GA2305@neutralgood.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, Sep 11, 2012 at 09:18:13PM -0400, kpneal@pobox.com wrote:
> On Tue, Sep 11, 2012 at 05:24:08PM -0700, Gary Kline wrote:
> > On Wed, Sep 12, 2012 at 01:14:43AM +0200, Polytropon wrote:
> > > But I also tried cksum directly with a directory
> > > like
> > > 
> > > 	% cksum <directory>
> > > 
> > > and could obtain a checksum - so it _seems_ to work.
> > > After alteration of one file within the hierarchy a
> > > different result was printed.
>  
> > 	I think I tried something like your second example last night.
> > 	I think I did
> > 
> > 	% cksum foodir/*
> > 
> > 	and had to compare each file from another file I was copying from.
> > 	it was tiresome to check each of dozens of files tho. I was here at 
> > 	desk for something obscene -- over 12 hrs. getting my new [slightly
> > 	used:)] computer back to normal.  
> > 
> > 	if there isn't anything that can compare entire dirs, it looks like
> > 	it's time to hack a small program.  tx, polyt.
> 
> Unix was originally created to do text manipulation. No need for a new
> program when you can do it from the command line.
> 
> cd dir1 ; cksum * | sort > /tmp/dir1-cksum
> cd dir2 ; cksum * | sort > /tmp/dir2-cksum
> 
> diff /tmp/dir?-cksum
> 
> Don't forget to remove temporary files when you are done.
> 
> Other useful commands:
> cut
> paste
> 
> You can use awk to pull out and rearrange columns:
> cksum * | awk '{ print $3, $1, $2; }' | sort
> 
> This gives you a little easier diff in case you do have changes.
> 
> Friendly tip: if you did comparisons by hand for 12 hours then you
> may have missed something.


	no, it was several other tasks that I had t  o do very carefully
	by hand.  I was going to write an awk script.  I figured there
	were others ways.

	my desktop is a flavor of linux that i don't  know.  it seems to be
	lacking in many common unix binaries; md5 is one that I spent
	an hour checking.  zero.

	your first way works very well and will serve.   many thanks.
	now I can listen to:

	/Lectures on the Critique of Pure Reason

	which is now safely in my home directory in several mp3 files.
	
> 
> It's a real shame Unix doesn't have a really good tool for comparing
> two directory trees. You can use 'diff -r' (even on binaries), but that
> fails if you have devices, named pipes, or named sockets in the
> filesystem. And diff or cksum don't tell you if symlinks are different.
> Plus you may care about file ownership, and that's where the stat
> command comes in handy.


	right.  these are things you only discover the hard way.   
>  
> Not that I'm volunteering, mind you. I ended up instead writing a
> Python script to do copies of filesystems off of old machines I'm
> putting to pasture. It's amazing how badly old versions of dump and
> tar behave. 


	REmember CP/M and MP/M?  I started out with a dual 8085/80888 box 
	with MP/Mand wrote notes and letters that were stored on 8"
	twin floppies.  circa mid-1980's I transferred a boatload of floppies
	onto my 386 with SVR2 with uucp and others C programs on the 8088 box. 
	it took forever and things keep faulting, but I got it done.
	eventually.

> -- 
> Kevin P. Neal                                http://www.pobox.com/~kpn/
> 
>    "I like being on The Daily Show." - Kermit the Frog, Feb 13 2001



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20120912050658.GA11860>