powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / Символ доллара в имени файла
5 сообщений из 5, страница 1 из 1
Символ доллара в имени файла
    #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
Символ доллара в имени файла
    #35786122
I00N
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Возьмите имя файла в одинарные кавычки
...
Рейтинг: 0 / 0
Символ доллара в имени файла
    #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
Символ доллара в имени файла
    #35786606
dp_cmb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Все сделал, получилось, большое спасибо
...
Рейтинг: 0 / 0
Символ доллара в имени файла
    #35786641
ыцц
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
dp_cmbВсе сделал, получилось, большое спасибо

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


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