我有一個文件夾,其中包含來自網絡攝像頭的100張圖片。當網絡攝像頭髮送一張新照片時,我希望這個替換爲0,並讓所有其他JPG都向上移動一個數字。我已經建立了一個腳本,inotify監視一個目錄。將新文件放入此目錄時,腳本會重新編號圖片目錄中的所有文件,重新命名新上傳的圖片並將其放入文件夾中。 這個腳本'排序'的作品。 「排序」,因爲有時它做什麼,它應該做的,有時它會抱怨缺少的文件:shell腳本在目錄內容更改時遞增文件名(centos)
MV:不能STAT`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'的新文件。因爲一旦inner for循環結束,你將有從'webcam2.jpg'開始的文件,並且如果你將新文件複製爲'webcam0.jpg',那麼你確實有'webcam1.jpg'缺少 – abasu 2013-05-14 09:04:25