如何删除IP摄像头录制目录中2天前的旧文件及空文件夹
如何删除IP摄像头录制目录中2天前的旧文件及空文件夹
你好,针对你IP摄像头录制文件的清理需求,结合你给出的目录结构(既有年/月直接存文件的层级,也有年/月/日的嵌套结构),我来帮你梳理更准确、高效的命令,顺便修正一下你之前操作里的小问题:
第一步:删除2天前的录制文件
你之前的第一条命令误把目标指向了目录,咱们要先精准定位到所有摄像头的.mp4文件,再删除超过2天的旧文件:
# 匹配所有cam_开头的.mp4文件,删除修改时间超过2天的文件 find /recordings -type f -name "cam_*.mp4" -mtime +2 -delete
- 小提示:如果怕误删,可以先把
-delete换成-print,看看会列出哪些文件,确认没问题再执行删除操作。
第二步:删除所有空文件夹
不用分三次单独处理日、月、年目录,一条命令就能从最底层到最顶层递归清理所有空文件夹:
# 从最底层子目录开始检查,删除所有空目录(父目录变空后也会被自动清理) find /recordings -type d -depth -empty -delete
- 这里的
-depth很关键:它让find先处理最深层的子目录,再处理父目录。这样当底层的空日目录被删掉后,上层的月/年目录如果变成空的,也能被检测到并删除。
完整执行顺序
一定要先删文件,再删空文件夹,因为只有文件被删除后,对应的目录才会变成空目录,才能被后续的命令检测到并清理。
你之前操作的问题说明
你最初写的第一条命令find /recordings/????/??/?? -depth -type d -mtime +2 -exec rm -rf {} \;是错误的——它是在删除目录而不是文件,而且还限定了只有年/月/日层级的目录,会漏掉年/月层级下的旧文件,也容易误删还没空的目录。
备注:内容来源于stack exchange,提问作者Simon
相关产品推荐
相关产品推荐

