Автоматизация ежедневного смещения файлов, переносящих даты на их имена

Я пытаюсь заставить сценарий перемещать все файлы, созданные сегодня к папке, названной с сегодняшней датой.

У меня есть некоторые камеры 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
0
задан 12 September 2018 в 18:26

2 ответа

Вы имеете (понятно, поскольку это довольно странно), синтаксис заключения в кавычки немного неправильно понятого удара. В целом необходимо поместить двойные кавычки вокруг "$variables" (так, чтобы пробелы не повреждали сценарии) - но если Вы поместите кавычки вокруг подстановочных знаков*, то он просто возьмет их буквально. Они должны закрыться кавычки для работы. Вот почему mv просится переместить файл, который на самом деле имеет * на его имя. (Обычно, когда Вы используете *, колотите, заменяет его списком файлов, прежде, чем передать его mv.)

, К сожалению, попытка собрать список файлов в переменную имеет еще больше причуд, таким образом, я рекомендовал бы на этот раз просто, не используя один для $datedTodayfiles.

было бы самым легким просто пойти order=$(mv "$actualFolder/$today"_* $todayFolder).

Также:

  • предостерегаются, потому что $todayFolder, вероятно, ни на что не устанавливается, и $actualFolder, кажется, неправильная вещь.

  • Вы, вероятно, действительно не хотите к chmod 777

1
ответ дан 23 September 2019 в 02:26
today=$(date -I)
todayFolder=$(mkdir /share/CameraCaptures/Trial/$today)
actualFolder=/share/CameraCaptures/Trial/
chmod 777 $actualFolder$today
sleep 1
mv "$actualFolder$today"_* "$actualFolder$today"/
0
ответ дан 23 September 2019 в 02:26

Другие вопросы по тегам:

Похожие вопросы: