LINUX.ORG.RU

История изменений

Исправление kostik87, (текущая версия) :

SOURCE=/tmp
DEST_DIR=/tmp/DEST
MOUNTHES="Январь Февраль Март Апрель Май Июнь Июль Август Сентябрь Октябрь Ноябрь Декабрь"
find ${SOURCE}/*/videodata -type d | while read DIR 
do
   FROM_FLASH=`echo ${DIR} | cut -f3 -d\/` 
   find ${DIR} -maxdepth 1 -type f -iname *.msn3 -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
	 cp $FILE ${DEST}/
      done
done

А да, у меня другой stat, в общем почитайте документацию по вашему stat, в FILE_STR должно быть примерно следующее:

2013-10-03 20:19:30.689136806 +0400|/tmp/dir1/videodata/fil13.msn3
Ну либо подправьте скрипт больше.

Исправление kostik87, :

SOURCE=/tmp
DEST_DIR=/tmp/DEST
MOUNTHES="Январь Февраль Март Апрель Май Июнь Июль Август Сентябрь Октябрь Ноябрь Декабрь"
find ${SOURCE}/*/videodata -type d | while read DIR 
do
   FROM_FLASH=`echo ${DIR} | cut -f3 -d\/` 
   find ${DIR} -maxdepth 1 -type f -iname *.msn3 -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
	 cp $FILE ${DEST}/
      done
done

А да, у меня другой stat, в общем почитайте документацию по вашему stat, в FILE_STR должно быть примерно следующее 2013-10-03 20:19:30.689136806 +0400|/tmp/dir1/videodata/fil13.msn3

Ну либо подправьте скрипт больше.

Исходная версия kostik87, :

SOURCE=/tmp
DEST_DIR=/tmp/DEST
MOUNTHES="Январь Февраль Март Апрель Май Июнь Июль Август Сентябрь Октябрь Ноябрь Декабрь"
find ${SOURCE}/*/videodata -type d | while read DIR 
do
   FROM_FLASH=`echo ${DIR} | cut -f3 -d\/` 
   find ${DIR} -maxdepth 1 -type f -iname *.msn3 -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
	 cp $FILE ${DEST}/
      done
done