All pastes #507703 Raw Edit

cleandie

public text v1 · immutable
·published 2007-05-24 18:19 UTC
rendered paste body
#!/bin/bash

#Porzdkowany folder
DIRIN=$1

#Miejsce gdzie zostana przeniesione pliki
DIROUT=$2


SILENT=$3

#Aktualnie poszukiwana kategoria plikow

#Tablica kategori
CATEGORY[0]=Dokumenty
CATEGORY[1]=Muzyka
CATEGORY[2]=Filmy
CATEGORY[3]=Zdjecia
CATEGORY[4]=Archiwa

#Tablica rozszerzen dopasowanych do odpowiedniej kategori
EXT[0]="pdf doc txt"
EXT[1]="mp3"
EXT[2]="avi mov"
EXT[3]="jpg"
EXT[4]="zip rar tar"

CUREXT=""
CURCATEGORY=""

#Wyswietlenie pomocy  i wyjscie
function help {
cat <<EOF

    cleandir - porzadkuje katalog przenoszac pliki do odpowiednich folderow
    ------------------------------------------------------------------------
    Uzycie : cleandir dirA dirB [-s]
    dirA - katalog porzadkowany
    dirB - katalog do ktorego zostana przeniesione pliki
    -s   - opcja powodujaca wylaczenie pojawiajacych sie komunikatow
    
EOF
exit 0
}

function verifyDate
{
    if [ "$DIRIN" = "" ]
    then 
      help
    fi
    if [ ! -d "$DIRIN" ]
    then
      echo "cleandir : Niepoprawny katalog dirA $DIRIN"
      exit 0
    fi
    if [ ! -d "$DIROUT" ]
    then
      echo "cleandir : Niepoprawny katalog dirB $DIRIN"
      exit 0
    fi
}
#Wypisuje komunikaty
function print
{
    if [ "$SILENT" != "-s" ]
    then
       echo "$MSG"
    fi
}

#Sprawdza czy w katalogu DIROUT istnieja katalogi 
#okreslne w tablicy CATEGORY, jesli nie istnieja
#to sa tworzone
function makeDirs
{
   i=0;
   while [ $i -lt $NCAT ]a; do
   if [ -d $DIROUT/${CATEGORY[$i]} ]
   then
      MSG="Katalog $DIROUT${CATEGORY[$i]} istnieje" print
   else
      MSG="Tworzenie katalogu $DIROUT${CATEGORY[$i]}" print
      mkdir $DIROUT/${CATEGORY[$i]}
   fi
   i=$[i + 1]
done
}


function cleanDir
{
    for f in $DIRIN*.$CUREXT
    do
       if [ -e $f ]
       then
         echo "Przenoszenie pliku  $f do $DIROUT$CURCATEGORY"
         mv $f $DIROUT$CURCATEGORY
       fi
    done
}

#sprawdzenie poprawnosci danych
verifyDate

#Wyznaczamy liczbe kategori
NCAT=${#CATEGORY[@]}
MSG="Liczba kategori : $NCAT"
print

makeDirs

i=0;
while [ $i -lt $NCAT ]; do
    
    CURCATEGORY=${CATEGORY[i]}
    MSG="-------------------------------" print
    MSG="Tworzenie kategori : $CURCATEGORY" print
    for x in ${EXT[i]}
    do
      CUREXT=$x
      MSG="Poszukiwanie plikow typu : $CUREXT" print
      cleanDir
    done    
    
    i=$[i + 1]
done

MSG="-------------------------------" print
echo "Porzadkowanie zakonczone"