Я пытаюсь заставить сценарий перемещать все файлы, созданные сегодня к папке, названной с сегодняшней датой.
У меня есть некоторые камеры IP, отправляющие изображения в папку.
Названия изображений:
2018-09-11_12-44-19_Inside.jpg
2018-09-11_12-26-28_Outside1.jpg
2018-09-11_12-21-48_Inside.jpg
2018-09-11_12-15-58_Outside2.jpg
…
Я хочу поместить задание крона для выполнения скрипта ежедневно в 23hr59 минут для перемещения всех сегодняшних файлов к папке, датированной сегодня.
Я застреваю со своим сценарием и ищущий некоторую справку.
today=$(date -I)
todayFolder=$(mkdir /share/CameraCaptures/Trial/$today)
actualFolder=/share/CameraCaptures/Trial/$today
chmod 777 $actualFolder
datedTodayfiles=$actualFolder/$today"_*"
order=$(mv $datedTodayfiles $actualFolder)
Я получаю эту ошибку:
mv: unable to rename `/share/CameraCaptures/Trial/2018-09-11/2018-09-11_*': No such file or directory
Вы имеете (понятно, поскольку это довольно странно), синтаксис заключения в кавычки немного неправильно понятого удара. В целом необходимо поместить двойные кавычки вокруг "$variables" (так, чтобы пробелы не повреждали сценарии) - но если Вы поместите кавычки вокруг подстановочных знаков*, то он просто возьмет их буквально. Они должны закрыться кавычки для работы. Вот почему mv
просится переместить файл, который на самом деле имеет *
на его имя. (Обычно, когда Вы используете *
, колотите, заменяет его списком файлов, прежде, чем передать его mv
.)
, К сожалению, попытка собрать список файлов в переменную имеет еще больше причуд, таким образом, я рекомендовал бы на этот раз просто, не используя один для $datedTodayfiles
.
было бы самым легким просто пойти order=$(mv "$actualFolder/$today"_* $todayFolder)
.
Также:
предостерегаются, потому что $todayFolder
, вероятно, ни на что не устанавливается, и $actualFolder
, кажется, неправильная вещь.
Вы, вероятно, действительно не хотите к chmod 777
today=$(date -I)
todayFolder=$(mkdir /share/CameraCaptures/Trial/$today)
actualFolder=/share/CameraCaptures/Trial/
chmod 777 $actualFolder$today
sleep 1
mv "$actualFolder$today"_* "$actualFolder$today"/