David Hlácik wrote:
find /data | sort > find.mirror1
find /data | sort > find.mirror2
diff find.mirror1 find.mirror2
On Thu, Oct 23, 2008, Bowie Bailey wrote:
A somewhat cleaner way of doing this is to use the ``comm'' command as it generates a straight list as opposed to diff which requires parsing the output.
cd /dir1 find . | sort > /tmp/find.mirror1 cd /dir2 find . | sort > /tmp/find.mirror2
# This will give a list of lines in mirror2 not in mirror1 comm -13 /tmp/find.mirror1 /tmp/find.mirror2 > /tmp/missingfrom1
# This will give a list of files in mirror1 not in mirror2 comm -23 /tmp/find.mirror1 /tmp/find.mirror2 > /tmp/missingfrom2
Bill
On Thu, Oct 23, 2008 at 10:15 AM, Bill Campbell centos@celestial.com wrote:
But comm also "requires" that the data be sorted. Otherwise you can get spurious output because lines that are actually the same but do not appear in order will show up as differences.
I'd go with the rsync solutions already posted, but that's just me.
mhr
On Thu, Oct 23, 2008, MHR wrote:
That's certainly true, which is why my solution, and the one with diff both sorted the find output before the comparison.
I use the ``comm'' solution quite frequently for this, and to do things like compare ``rpm -ql packagename'' with ``rpm -qpl'' to be sure that modifications I have made to a package have not added or lost something compared to the installed version.
I find ``comm'' to be a very useful program that people may not know of, and I use it in Linux/Unix classes I teach to show people how CLI programs may make things much easier than GUIs.
I'd go with the rsync solutions already posted, but that's just me.
Bill
On Thu, Oct 23, 2008 at 11:13 AM, Bill Campbell centos@celestial.com wrote:
That's certainly true, which is why my solution, and the one with diff both sorted the find output before the comparison.
Oh, I thought I was just seeing double again.
Oops! :-)
mhr