LINUX.ORG.RU
ФорумAdmin

Проблема со скриптом


0

1

Доброе время суток Есть скрипт

sudo mount.cifs //192.168.0.55/videoreg /mnt/lan -o guest

SOURCE="/media/229_2 /media/161_11 /media/256_2 /media/342_11 /media/354_2 /media/417_11 /media/427_11 /media/590_33 /media/592_1 /media/593_11 /media/651_22 /media/894_4 /media/916_1 /media/16_593 /media/16_892 /media/16_342 /media/16_229 /media/16_592 /media/16_427 /media/16_590 /media/16_161 /media/16_256 /media/16_681 /media/16_225 /media/16_417 /media/16_559 /media/16_916 /media/16_354 /media/16_357 /media/16_255 /media/16_353 /media/16_529 /media/16_894 /media/16_893 /media/16_651 /media/255_2 /media/342_22 /media/353_1 /media/357_2 /media/529_22 /media/894_1 /media/PAVLOV2 /media/225_1 /media/353_2 /media/357_11 /media/681_1 /media/681_2 /media/892_2 /media/ELISEEV /media/161_1 /media/592_11 /media/651_1 /media/893_33 /media/916_2 /media/225_2 /media/256_11 /media/161_3 /media/255_11 /media/427_22 /media/892_1 /media/916_11 /media/229_1 /media/354_1 /media/529_1 /media/590_22 /media/593_22 /media/893_1"


DEST_DIR=/mnt/lan
MOUNTHES="Январь Февраль Март Апрель Май Июнь Июль Август Сентябрь Октябрь Ноябрь Декабрь"

find ${SOURCE}/ -type d | while read DIR
do
   FROM_FLASH=`echo ${DIR} | cut -f3 -d \/`

   find ${DIR} -maxdepth 1 -type f -iname 0*.* -exec stat -c "%y\|%n" {} \; | while read FILE_STR
      do
         MOUNTH_NUM=`echo $FILE_STR | cut -f1 -d" " | cut -f2 -d-`
        MOUNTH=`echo $MOUNTHES | cut -f $MOUNTH_NUM -d" "`
         DAY=`echo $FILE_STR | cut -f1 -d" " |cut -f3 -d-`


         DEST=${DEST_DIR}/$MOUNTH\/$DAY\/$FROM_FLASH
         FILE=`echo $FILE_STR | cut -f2 -d\|`
         test -d ${DEST} || mkdir ${DEST} -p
        echo $FILE ${DEST}/

        cp --preserve $FILE ${DEST}/
done
done
sudo umount /mnt/lan
exit

Так вот в папку media монтируются автоматом флешки и всегда разные по b названию ,и каждый раз их забивать в переменную SOURCE накладно. Как можно сделать так чтоб он смотрел что есть в папке Media и подставлял в переменную SOURCE (/media/наз папки)?


FROM_FLASH=`echo ${DIR} | cut -f3 -d \/`

У find есть ключ -maxdepth, посмотрите команду в моём предыдущем сообщении.

find ${DIR} -maxdepth 1 -type f -iname 0*.* -exec stat -c "%y\|%n" {} \;

Изучите у использование '-printf'.

kostik87 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.