Linux命令行批量清理媒体库中无视频的重复季文件夹方案咨询
Linux命令行批量清理媒体库中无视频的重复季文件夹方案咨询
嗨,针对你遇到的媒体库重复季文件夹问题,我来给你梳理几个简单高效的命令行方案,直接就能搞定:
首先说结论:优先检查文件夹内是否存在视频文件,比看文件夹大小要靠谱得多。毕竟你的无效文件夹只有空元数据和缩略图,而有效文件夹核心是包含视频文件——用视频存在性判断,完全不会出现“误删小体积视频文件夹”或者“漏删大体积缩略图文件夹”的情况。
方案一:检查视频文件存在性(推荐)
用find命令递归定位所有Season*文件夹,再通过子shell检查其中是否包含常见视频格式的文件。如果没有视频,就标记删除(先测试再执行真正的删除操作):
find /path/to/your/media/library -type d -name "Season*" -exec bash -c ' target_dir="$0" # 这里列出你常用的视频格式,可根据实际情况补充 if ! ls "$target_dir"/*.{mp4,mkv,avi,mov,flv,webm} 1>/dev/null 2>&1; then # 先执行echo命令预览要删除的文件夹,确认无误后再替换成rm -rf echo "待删除的无效季文件夹:$target_dir" # rm -rf "$target_dir" fi ' {} \;
命令解释:
find ... -type d -name "Season*":递归查找所有以Season开头的文件夹-exec bash -c '...' {} \;:对每个找到的文件夹执行后续的bash逻辑ls "$target_dir"/*.{...} 1>/dev/null 2>&1:静默检查文件夹内是否有指定格式的视频文件,没有的话返回非零值- 先通过
echo预览要删除的目标,确认完全符合预期后,再把echo那一行替换成rm -rf "$target_dir"执行真正的删除
方案二:通过文件夹大小判断(不推荐)
如果一定要用大小判断,比如假设无效文件夹的总大小不会超过1MB(因为只有缩略图和空文件夹),可以用这个命令:
find /path/to/your/media/library -type d -name "Season*" -size -1M -exec echo "待删除的小体积季文件夹:{}" \; # 确认无误后替换成: # find /path/to/your/media/library -type d -name "Season*" -size -1M -exec rm -rf {} \;
为什么不推荐:
- 万一某个有效文件夹里只有极小体积的视频片段(比如几十KB的测试文件),会被误删
- 如果无效文件夹里的缩略图体积意外超过1MB(比如高清海报),会被漏删
所以这个方法的容错率远低于检查视频存在性的方案。
注意事项:
- 绝对要先测试:不管用哪个方案,都要先执行带
echo的版本,确认要删除的都是无效文件夹,再执行真正的删除命令 - 补充视频格式:如果你的媒体库还有其他格式(比如
.m4v),记得在方案一的{}里补充进去 - 权限问题:如果执行命令时遇到权限错误,可以在开头加上
sudo(但要更谨慎,避免误删系统文件)
备注:内容来源于stack exchange,提问作者Graham F
相关产品推荐
相关产品推荐

