从IP cam重命名最新图像并删除其他图像

时间:2014-11-12 18:56:43

标签: bash

我没有bash编程经验和带有糟糕固件的相机。我已经完成了我想在这里完成的项目:

http://www.computer-wiz.ca/snowmobile-test-page

  • 使用具有正确固件的不同相机将图片上传到ftp并重命名,覆盖上一张图片并允许我在网页上显示该图片,因为它具有相同的名称,但它已从最后几分钟。这是我正在进行的项目的演示,现在使用相同品牌的相机,并且没有足够的固件来重命名文件。因此,我留下了一个充满文件的目录,名称如下:
Schedule_20141111_044312.jpg
Schedule_20141111_045312.jpg

每10分钟上传一次。我的godaddy服务器每小时只运行两次cronjob。我需要:

  • 将此文件夹中的最新文件重命名为我的网页可以显示的常量 - 例如:image.jpg
  • 将它移动到一个名为watermark的文件夹,我的php脚本可以对其进行水印,并覆盖上次移动中的任何文件
  • 删除相机上传到的文件夹中的所有其他图片,以便服务器无法填写

我意识到这有很多问题,第三方软件就在那里,但我已经尝试了一些,他们在整个画面上打了一个品牌。我目前的代码是:

#!/bin/sh
cd myhomedirectory/webcamuploads/FI9828W_00626E52FF8D/snap/
mv `ls -1t | head -1` myhomedirectory/html/webroot/webcamuploads/watermark/

它甚至不喜欢这个标题。我不断收到文件也不存在错误......

帮助?

1 个答案:

答案 0 :(得分:2)

我会先将每个文件移动到位,让较新的文件覆盖旧的文件。在文件系统中移动文件并不昂贵;它只是对目录条目的更改,而不是实际将实际文件从一个地方复制到另一个地方。

由于文件名称合理,无论您按字典顺序排序(Schedule_*.jpg将执行什么操作)还是按时间顺序排序,顺序都是相同的。

cd myhomedirectory/webcamuploads/FI9828W_00626E52FF8D/snap/
for f in Schedule_*.jpg; do
    mv "$f" myhomedirectory/html/webroot/webcamuploads/watermark/
done

没有必要明确删除任何内容,因为较旧的文件只会被新文件“覆盖”。循环完成后,只剩下最新的文件。