天天看點

移除指定目錄的檔案

#!/bin/bash

dir1=/root/was1

dir2=/root/was2

#dir1=/wasprofiles/c01-`hostname`/installedApps/cell01

#dir2=/wasprofiles/c02-`hostname`/installedApps/cell02

function del_files

{

    i=1

    echo "----------------------------------------------------------------------"

    arr=($1)

    for s in ${arr[@]}

    do

        echo "$i $s"

        i=$[$i + 1]

    done

    echo "Choose files to remove.(Example:1 2 3 or all)"

    read rmfiles

    while test -z "$rmfiles"

        echo "Input is null! Please input again.(Example:1 2 3 or all)"

        read rmfiles

    if [ "$rmfiles" = "all" ] ; then

        for rf in ${arr[@]}

        do

    [ ! -d /tmp/$2 ] && mkdir /tmp/$2

    rmname=`sed 's/\///' <<< "$rf" | sed 's/\//#/g'`

            mv $rf /tmp/$2/$rmname

done

    else

        for rf in $rmfiles

            if grep '^[[:digit:]]*$' <<< "$rf" >/dev/null ; then

        arf=$[$rf - 1]

        if test -z ${arr[$arf]} ; then

    echo "Eeror: Input $rf not exist"

        else

                    [ ! -d /tmp/$2 ] && mkdir /tmp/$2

    rmname=`sed 's/\///' <<< "${arr[$arf]}" | sed 's/\//#/g'`

                    mv ${arr[$arf]} /tmp/$2/$rmname

        fi

            else

                echo "Eerror: Input $rf is not number."

            fi

        done

    fi

    echo "ls /tmp/$2"

    ls -l /tmp/$2

}

echo "Please input was1,was2 or exit."

read line

while test -z "$line" || ([ "$line" != "was1" ] &&  [ "$line" != "was2" ] && [ "$line" != "exit" ])

do

    echo "Input error! Please input was1,was2 or exit."

    read line

echo "----------------------------------------------------------------------"

if [ $line = "was1" ] ; then

    echo "Files will be found in $dir1"

    echo "Please input filename.(Example: abc 123.txt)"

    read filename

    while test -z "$filename"

        echo "Input is null! Please input again.(Example: abc 123.txt)"

        read filename

    for file in $filename

        ffile=`find $dir1 -type f -name $file\*`

        if test -z "$ffile" ; then

            echo "Info: $file is not found."

        else

            ffiles="$ffile $ffiles"

        fi

    if test -z "$ffiles" ; then

        echo "Can't find input files."

        del_files "$ffiles" was1

elif [ $line = "was2" ] ; then

        echo "Files will be found in $dir2"

        ffile=`find $dir2 -type f -name $file\*`

        echo "Info: All input files not found!"

        del_files "$ffiles" was2

elif [ $line = "exit" ] ; then

    exit

fi

     本文轉自1321385590 51CTO部落格,原文連結:http://blog.51cto.com/linux10000/1960782,如需轉載請自行聯系原作者