本帖最后由 kashu 于 2013-7-1 14:31 编辑
使用式: sh filename.sh /etc [Bash shell] 纯文本查看 复制代码 #!/bin/bash
if [ $UID -ne 0 ];then
echo "error: you are not the root ...."
exit 1
fi
path=$1
echo $path
if [ ! -w /mnt ];then
echo "Directory /mnt not allowd to write "
echo " chage the mod (y/n)?"
read mod
case $mod in
y|yes|Y|YES)
chmod 777 /mnt
sleep 1
echo "you can write now ..."
;;
n|no|N|NO)
OK,exiting....
sleep 1
exit 0
;;
*)
exit 0
;;
esac
fi
rmfile()
{
rm -fr /mnt/md5sum.log >/dev/null 2>&1
rm -fr /mnt/name1.log >/dev/null 2>&1
rm -fr /mnt/name2.log >/dev/null 2>&1
rm -fr /mnt/rmlist.log >/dev/null 2>&1
rm -fr /filename.log >/dev/null 2>&1
}
echo_()
{
echo "______________________________"
}
rmfile
ls -lh $path | grep '^-'|awk '{print $NF}'>/mnt/filename.log
sum=`cat /mnt/filename.log|wc -l`
echo_
echo 此目录中的文件有。。。。
echo_
sleep 1
cat /mnt/filename.log
echo_
sleep 1
echo
echo_
echo 共有文件数:$sum ......
echo_
echo
sleep 1
echo_
echo "Md5sum 校验中....."
sleep 3
while read line ;do md5sum $path/$line;done</mnt/filename.log|tee /mnt/md5sum.log
echo "校验完成。。。。"
echo_
sleep 1
unset name
name=`cat /mnt/md5sum.log |awk '{print $NF}'`
for var in $name;do echo ${var##*/};done>/mnt/name1.log
echo '/mnt/name1.log___listing....'
sleep 1
cat /mnt/name1.log
echo_
sleep 1
unset name
name=`sort /mnt/md5sum.log | uniq -w 32 | awk '{print $NF}'`
for var in $name;do echo ${var##*/};done>/mnt/name2.log
echo '/mnt/name2.log___listing....'
sleep 1
cat /mnt/name2.log
sleep 1
echo_
sort /mnt/name1.log -o /mnt/name1.log;sort /mnt/name2.log -o /mnt/name2.log
comm /mnt/name1.log /mnt/name2.log -2 -3 >/mnt/rmlist.log
echo 将要删除的文件:
cat /mnt/rmlist.log
sleep 1
rmlist=`cat /mnt/rmlist.log`
rmfile
for var in $rmlist
do
echo "Deleting file $var ............."
sleep 1
rm -fr $path/$var ||echo File $var delete fiale .............!!!!!
done
[ $? -eq 0 ]&& echo "DELETE SUCCESSFULLY ........"
echo exiting.......
sleep 2
exit 0
|