У меня есть папка, содержащая 100 изображений с веб-камеры. Когда веб-камера отправляет новое изображение, я хочу, чтобы это заменило номер 0, и все остальные jpg переместились на один номер. Я установил скрипт, где inotify контролирует каталог. Когда новый файл помещается в этот каталог, скрипт renumbers все файлы в каталоге изображений, переименовывает новое загруженное изображение и помещает его в папку вместе с остальными. Этот сценарий «вроде» работает. «Сорт», потому что иногда он делает то, что он должен делать, и иногда он жалуется на отсутствующие файлы:сценарий оболочки для увеличения имен файлов при изменении содержимого каталога (centos)
мв: не может стат `webcam1.jpg ': Нет такого файла или каталога
Иногда он жалуется только один файл, иногда 4 или 5. Конечно, я убедился, что все 100 файлов были там, правильно названы до запуска скрипта. После запуска сценария файлы, на которые он жалуется, действительно отсутствуют. Это сценарий, в проверенной мне версии, конечно, используются полные пути к каталогам.
#!/bin/bash
dir1= /foo # directory to be watched
while inotifywait -qqre modify "$dir1"; do
cd /f002 #directory where the images are
for i in {99..1}
do
j=$(($i+1))
f1a=".jpg"
f1="webcam$i$f1a"
f2="test"
f2="webcam$j$f1a"
mv $f1 $f2
done
rm webcam100.jpg
mv dir1/*.jpg /f002/webcam0.jpg
done
Мне также нужно выполнить некоторую проверку ошибок, но пока я не понимаю, почему у нее отсутствуют файлы, которые есть.
Вы копируете новый файл под именем 'webcam1.jpg' или' webcam0.jpg'. Потому что, как только внутренняя для цикла закончится, у вас будут файлы, начинающиеся с 'webcam2.jpg', и если вы скопируете новый как' webcam0.jpg', то у вас действительно есть 'webcam1.jpg' missing – abasu