Well, it really depends on one's familiarity. I can run find on both directory roots, to get a list of all files. I want breadth-first, but I think find can do that.
The output needs to be sorted for each directory, since I also need to find files in one that are not in the other. I am not sure that I can just run sort to do that, due to the special ordering that I need to give the / character, relative to other non-alphanum characters. Now I need to read each list, in parallel, line-by-line. If the file from list 1 is greater than the file in list 2, then the file is missing in dir 2, and vice versa. If a file is a directory in one, but not in the other, then I need to advance one list to skip that dir. For example, if foo is a directory in a, but not in b, then the breadth first output is: a/f1 a/f2 a/foo a/g a/h_dir_in_both a/j a/foo/f1 a/foo/f2 a/h_dir_in_both/g1 b/f1 b/f2 b/foo b/g b/h_dir_in_both b/j b/h_dir_in_both/g1 At this point, it starts to seem easier to do in C++, though I wouldn't be terribly surprised if there was some easier way to do it via shell scripting that I have missed. On Mon, Oct 26, 2009 at 3:35 PM, Stephan Mueller <stephan.muel...@microsoft.com> wrote: > Kenneth Chiu writes: > " cmp doesn't recurse, though, at least as far as I can tell. > " In theory, I could use find, then cmp, plus some scripting, > " but seems simpler to just write a small C program > " to do it. > > Really? Your definition of 'simpler' may differ from mine, but > given an existing tool for recursion and one for comparison, I'm > not sure that writing in C, which will require you to take care > of both of those tasks yourself, is simpler. But up to you how > you want to do it, of course. > > stephan(); > -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple