home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Chip 2007 January, February, March & April
/
Chip-Cover-CD-2007-02.iso
/
boot
/
i386
/
rescue
/
usr
/
bin
/
safe-rm
< prev
next >
Wrap
Text File
|
2006-11-29
|
901b
|
48 lines
#!/bin/bash
todo=
opts=
case "${0##*/}" in
safe-rm) todo=rm ; opts=-f ;;
safe-rmdir) todo=rmdir ; opts= ;;
esac
set -o physical
test -n "$todo" || exit 2
test -x /bin/$todo || exit 2
test -x /bin/pwd || exit 2
for d; do
if [[ "$d" != /* ]] ; then
echo "usage: $0 _absolute_path_to_file" 1>&2
exit 1
fi
path=${d//\/.\//\/}
name=${path##*/}
if test "/$name" = "$path" ; then
echo "$0: usage in root directory not allowed" 1>&2
exit 1
fi
path=${path%/*}
if test -z "${path}" ; then
echo "$0: empty dirname not allowed" 1>&2
exit 1
fi
if cd -P "${path}" && test "${path}" = "$(pwd -P)" ; then
if test "$PWD" = "$(/bin/pwd)" ; then
/bin/$todo $opts -- "$name"
else
echo "$0: no symlinks allowed in the path of $d" 1>&2
exit 1
fi
else
echo "$0: no symlinks allowed in the path of $d" 1>&2
exit 1
fi
done