X-Recipient: archive-cygwin AT delorie DOT com X-SWARE-Spam-Status: No, hits=-1.9 required=5.0 tests=AWL,BAYES_00,SARE_MSGID_LONG40,SPF_PASS X-Spam-Check-By: sourceware.org MIME-Version: 1.0 In-Reply-To: References: <20091026172622 DOT GB790 AT ednor DOT casa DOT cgf DOT cx> <0105D5C1E0353146B1B222348B0411A20886DC6D7B AT NIHMLBX02 DOT nih DOT gov> Date: Mon, 26 Oct 2009 22:31:39 -0400 Message-ID: Subject: Re: How to increase the memory available to diff in cygwin 1.7? From: "Mark J. Reed" To: cygwin AT cygwin DOT com Content-Type: text/plain; charset=UTF-8 X-IsSubscribed: yes Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com On Monday, October 26, 2009, Kenneth Chiu wrote: > 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. Well, as a start, you could try this: find "$src" -type f -print | while read f; do cmp "$f" "${f/$src/$dest}" ; done The concatenation of its stdout and stderr will include distinguishable lines enumerating the following sets: all files in "$dest" that differ from the corresponding file in "$src" all directories in "$dest" that correspond to files in "$src" and vice-versa all pathnames under "$dest" that don't exist despite there being a corresponding file under "$src" Which seems to be all the information you were looking for. You can then postprocess the output to format it however you like. Nothing there screams C to me. Perl, maybe... -- 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