Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / Символ доллара в имени файла / 5 сообщений из 5, страница 1 из 1
29.01.2009, 14:50:15
    #35785694
dp_cmb
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Символ доллара в имени файла
Есть скрипт, который запускается по cron'у на Solaris. Он следит за содержанием одной из директорий и если там появляются определенные файлы, то перемещает их в другие директории.
Проблема в том, что если в этих определенных файлах появляется файл с символом доллара в имени, то скрипт не может его переместить, при этом квитковый файл он перемещает.

Подскажите как решить проблему

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
#!/bin/bash


# Перемещение полностью дописанных файлов в другую директорию.
# Признаком полностью дописанного файла служит наличие "квиткового"
# файла с тем же именем и заданным расширением

#исходная директория с файлами
DIR_SRC=/u01/atlant/cdr/
#echo "DIR_SRC - $DIR_SRC"
#исходная директория с "квитковыми" файлами
DIR_SRC_DONE=/u01/atlant/cdr/
#echo "DIR_SRC_DONE - $DIR_SRC_DONE"

#директория, в которую следует переместить файлы
DIR_DST=/u01/atlant/mdm_working/driver/drv_input/
#echo "DIR_DST - $DIR_DST"
#директория, в которую следует переместить "квитковые" файлы
DIR_DST_DONE=/u01/atlant/mdm_working/driver/Archive/
#echo "DIR_DST_DONE - $DIR_DST_DONE"

#маска файлов
MASK_SRC=*.MD

#расширение "квитковых" файлов
EXT_DONE=DONE

#расширение, которое нужно задать файлам после перемещения
EXT_DST=MD


#echo "DIR_SRCMASK_SRC - $DIR_SRC$MASK_SRC"

cd $DIR_SRC

for filename in $DIR_SRC$MASK_SRC
do
#echo $filename

        if [ -e $DIR_SRC_DONE${filename#$DIR_SRC}.$EXT_DONE ]
        then
                #echo $DIR_SRC_DONE${filename#$DIR_SRC}.$EXT_DONE
                mv -f $filename $DIR_DST
                mv -f $DIR_DST$filename $DIR_DST$filename.$EXT_DST
                mv -f $DIR_SRC_DONE$filename.$EXT_DONE $DIR_DST_DONE
        fi
done

exit 0

Имена файлов :

Квитковый файл - ATLVRZF_2901200911_0.MD.DONE
Исходный файл - ATLVRZF_2901200911_0.MD

Имена файлов, которые не перемещаются:

Квитковый файл - ATL23200_CS2K$MSKR_2101200912.MD.DONE
Исходный файл - ATL23200_CS2K$MSKR_2101200912.MD
...
Рейтинг: 0 / 0
29.01.2009, 16:42:29
    #35786122
I00N
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Символ доллара в имени файла
Возьмите имя файла в одинарные кавычки
...
Рейтинг: 0 / 0
29.01.2009, 19:14:32
    #35786519
fy
fy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Символ доллара в имени файла
dp_cmb
mv -f $filename $DIR_DST
mv -f $DIR_DST$filename $DIR_DST$filename.$EXT_DST
mv -f $DIR_SRC_DONE$filename.$EXT_DONE $DIR_DST_DONE


Может я конечно что-то не так понял, но у меня все нормально перемещается.
Попробуйте этот кусок переписать так:
Код: plaintext
1.
mv -f $filename $DIR_DST${filename#$DIR_SRC}.$EXT_DST
              mv -f $DIR_SRC_DONE${filename#$DIR_SRC}.$EXT_DONE $DIR_DST_DONE
...
Рейтинг: 0 / 0
29.01.2009, 20:45:50
    #35786606
dp_cmb
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Символ доллара в имени файла
Все сделал, получилось, большое спасибо
...
Рейтинг: 0 / 0
29.01.2009, 21:09:01
    #35786641
ыцц
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Символ доллара в имени файла
dp_cmbВсе сделал, получилось, большое спасибо

а в чем косяк то был?
...
Рейтинг: 0 / 0
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / Символ доллара в имени файла / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]