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"