Index: usr.sbin/freebsd-update/freebsd-update.sh =================================================================== --- usr.sbin/freebsd-update/freebsd-update.sh +++ usr.sbin/freebsd-update/freebsd-update.sh @@ -2906,8 +2906,21 @@ sort -k 1,1 -t '|' $1 | tr '|' ' ' | while read FPATH TYPE OWNER GROUP PERM FLAGS HASH LINK; do + if [ -e ${BASEDIR}/${FPATH} ]; then + if [ ${TYPE} = d ] && ! [ -d ${BASEDIR}/${FPATH} ]; then + rm -f ${BASEDIR}/${FPATH} + elif [ ${TYPE} = 'f' || ${TYPE} = 'L' ] && \ + [ -d ${BASEDIR}/${FPATH} ]; then + rm -rf ${BASEDIR}/${FPATH} + fi + fi case ${TYPE} in d) + if [ -e ${BASEDIR}/${FPATH} ] && \ + ! [ -d ${BASEDIR}/${FPATH} ]; then + # Exists but not a directory + rm -f ${BASEDIR}/${FPATH} + fi # Create a directory install -d -o ${OWNER} -g ${GROUP} \ -m ${PERM} ${BASEDIR}/${FPATH}