DEST_DIR=/usr/share
GREP=grep
file_exists_exact1()
{
[ -n "$1" ] || err 3 "USAGE: file_exists_exact path"
_path="${1#.}"
[ -h "${DEST_DIR}${_path}" ] || \
[ -e "${DEST_DIR}${_path}" ] || return 1
while [ "${_path}" != "/" ] ; do
_dirname="$(dirname "${_path}" 2>/dev/null)"
_basename="$(basename "${_path}" 2>/dev/null)"
ls -fa "${DEST_DIR}${_dirname}" 2> /dev/null \
| ${GREP} -F -x "${_basename}" >/dev/null \
|| return 1
_path="${_dirname}"
done
return 0
}
file_exists_exact2()
{
[ -n "$1" ] || err 3 "USAGE: file_exists_exact path"
_path="${1#.}"
[ -h "${DEST_DIR}${_path}" ] || \
[ -e "${DEST_DIR}${_path}" ] || return 1
while [ "${_path}" != "/" ] ; do
_dirname=${_path%/*}
_basename=${_path##*/}
test -n "$_dirname" || _dirname=/
(
cd "${DEST_DIR}${_dirname}"
for _entry in .* *; do
case ${_entry} in
"${_basename}") return 0;;
esac
done
return 1
) || return 1
_path="${_dirname}"
done
return 0
}
DEST_DIR="$2"
if file_exists_exact$1 "$3" ; then
echo "$3" exists in "$2"
fi