我有两个 IP 摄像机,从 08:00 到 20:59,每 10 秒将图像快照发送到 FTP 服务器。目录结构如下所示:
`-- public_html
`-- securitycams
|-- cam01
| |-- 20190601
| | |-- 08
| | | |-- 20190601_080000.jpg
| | | |-- 20190601_080010.jpg
| | | |-- 20190601_080020.jpg
| | | `-- ...
| | |-- 09
| | | |-- 20190601_090000.jpg
| | | |-- 20190601_090010.jpg
| | | |-- 20190601_090020.jpg
| | | `-- ...
| | |-- 10
| | |-- 11
| | |-- 12
| | |-- 13
| | |-- 14
| | |-- 15
| | |-- 16
| | |-- 17
| | |-- 18
| | |-- 19
| | `-- 20
| `-- 20190602
| |-- 08
| | |-- 20190602_080000.jpg
| | |-- 20190602_080010.jpg
| | |-- 20190602_080020.jpg
| | `-- ...
| |-- 09
| | |-- 20190602_090000.jpg
| | |-- 20190602_090010.jpg
| | |-- 20190602_090020.jpg
| | `-- ...
| |-- 10
| |-- 11
| |-- 12
| |-- 13
| |-- 14
| |-- 15
| |-- 16
| |-- 17
| |-- 18
| |-- 19
| `-- 20
`-- cam02
| |-- 20190601
| | |-- 08
| | | |-- 20190601_080000.jpg
| | | |-- 20190601_080010.jpg
| | | |-- 20190601_080020.jpg
| | | `-- ...
| | |-- 09
| | | |-- 20190601_090000.jpg
| | | |-- 20190601_090010.jpg
| | | |-- 20190601_090020.jpg
| | | `-- ...
| | |-- 10
| | |-- 11
| | |-- 12
| | |-- 13
| | |-- 14
| | |-- 15
| | |-- 16
| | |-- 17
| | |-- 18
| | |-- 19
| | `-- 20
| `-- 20190602
| |-- 08
| | |-- 20190602_080000.jpg
| | |-- 20190602_080010.jpg
| | |-- 20190602_080020.jpg
| | `-- ...
| |-- 09
| | |-- 20190602_090000.jpg
| | |-- 20190602_090010.jpg
| | |-- 20190602_090020.jpg
| | `-- ...
| |-- 10
| |-- 11
| |-- 12
| |-- 13
| |-- 14
| |-- 15
| |-- 16
| |-- 17
| |-- 18
| |-- 19
| `-- 20
我只对保留以下时间之间拍摄的快照的副本感兴趣:
08:00 and 09:59
13:00 and 14:59
19:00 and 20:59.
因此我想创建一个定时作业这将定期删除名为“10”、“11”、“12”、“15”、“16”、“17”和“18”的所有目录。
我是 UNIX 命令的新手,并且搜索了很多。我设法创建了这个命令:
find /home/******/public_html/securitycams/* -depth \( -name "10" -or -name "11" -or -name "12" -or -name "15" -or -name "16" -or -name "17" -or -name "18" \) -type d -exec rm -r "{}" \;
似乎有效。但这是正确的方法吗?
答案1
你的命令对我来说看起来不错。但你可以缩短一点:
-depth
可以删除\( -name ... -or -name ... \)
可以缩短- 而不是
{} \;
你可以使用{} +
导致只调用一次rm
find /home/******/public_html/securitycams -type d -name "1[0-25-8]" -exec rm -r {} +
如果您的摄像机可以配置为存储 08:00 到 20:59 之间的图像,也许它们也可以配置为仅存储 08:00 到 09:59、13:00 到 14:59 以及 19:00 到 20 之间的图像:59?
我认为没有“正确的方法”来做到这一点。如果 cron 作业适合你,为什么不呢?