Home » Infrastructure » Unix » help needed: comparing two directory tree structures
help needed: comparing two directory tree structures [message #144454] Wed, 26 October 2005 09:24 Go to next message
raj_thota
Messages: 1
Registered: October 2005
Junior Member
Hi,
I am Rajesh. I am totally new to shell scripting. I have to prepare a shell script which comapres two directory tree structures ( directory contents comparision is not necessary).

for example, suppose I had installed a software system long back and now I want to upgrade that software but I dont want to disturb the tree stucture. So I had to check the directory tree structure of Updated software with the directory tree strucure of previous version software.

here is the code I am preparing for this problem..but I am not able to achieve my goal. So please, If anyone can review the code and point out where I am going wrong, I would be thankful to them.
the code is :
----------------------------------------------------------------
#!/bin/bash
#
# compare: compare directory trees recursively and report the differences.
# Author: Rajesh thota

function gettype () {
if [ -d $1 ]; then
echo "directory"
else
echo "notdirectory"
fi
}

function exists () {
if [ -e $1 -o -L $1 ]; then
return 0;
else
echo "rajesh $1 does not exist."
return 1;
fi
}

function comparedirectory () {
local result=0
local v1=0
local v2=0
for i in `(ls -A $1 && ls -A $2) | sort | uniq`; do
# v1=$(gettype $1/$i)
# v2=$(gettype $2/$i)
# echo "$v1"
# echo "$v2"
# if [ ($v1 = "directory") && ($v2 = "directory") ]; then
compare $1/$i $2/$i || result=1
# fi
done
return $result
}

# compare directories
function compare () {
(exists $1 && exists $2) || return 1;
local type1=$(gettype $1)
local type2=$(gettype $2)

echo "$type1"
echo "$type2"

if [ $type1 = $type2 ]; then
comparedirectory $1 $2
else
echo "type mismatch: $type1 ($1) and $type2 ($2)."
false
fi
return
}

if [ 2 -ne $# ]; then
cat << EOU
Usage: $0 dir1 dir2
Compare directory trees:
directories are checked for identical tree stuctures

exit 10
fi
----------------------------------------------------------------

Thanking you a lot

Regards
Rajesh

Re: help needed: comparing two directory tree structures [message #145743 is a reply to message #144454] Sat, 05 November 2005 12:00 Go to previous message
BlackSwan
Messages: 26766
Registered: January 2009
Location: SoCal
Senior Member
$ find top_tree_1 -type d -print > /tmp/tree1.lis
$ find top_tree_2 -type d -print > /tmp/tree2.lis
$ diff /tmp/tree1.lis /tmp/tree2.lis
Previous Topic: install unix oralce
Next Topic: Creating a file from few lines of another file
Goto Forum:
  


Current Time: Thu Apr 25 08:23:28 CDT 2024