前言:解决影视库刮削残留文件问题
本文主要解决影视库刮削后的残留文件问题。当我们看完视频删除文件时,往往只删除了视频本身,而封面、海报、NFO 等刮削文件仍然存在。时间久了会导致:
- 文件夹堆积占用存储空间
- Jellyfin/Emby 等媒体服务器会继续识别残留刮削文件,导致影视库混乱
效果示例
原始目录结构:日韩剧 /
├── 剧 A / # 无视频文件(整个删除)
├── 剧 B /
│ ├── EP01.mp4 # 有视频文件(保留整个剧 B)
│ └── Metadata/
└── 剧 C /
└── Seasons/
└── S01.mkv # 子目录有视频文件(保留整个剧 C)
运行后结果:删除 剧 A /(完全无视频)保留 剧 B / 和 剧 C /(即使视频在子目录中)
操作步骤
一、确认要清理的目录
建议从影视二级分类开始操作(降低误操作风险),通过 Docker 获取真实路径:/tmp/zfsv3/sata14/185XXXXXXXX/data/PT/ 电视剧 / 日韩剧
二、准备自动清理脚本
建议在桌面新建文本文件保存以下代码:
#!/bin/bash
# 目标目录(请修改为你的实际路径)TARGET_DIR="/tmp/zfsv3/sata14/18509153321/data/ 影视 / 电视剧 / 欧美剧"
# 支持的视频扩展名
VIDEO_EXTS=("mp4" "mkv" "avi" "mov" "wmv" "flv" "mpg" "mpeg" "rmvb" "webm" "ts")
# 进入目标目录
cd "$TARGET_DIR" || {echo "目录不存在或无法访问!"; exit 1;}
echo "===== 开始深度清理无视频文件的目录 ====="
echo "目标路径: $TARGET_DIR"
echo "支持的视频格式: ${VIDEO_EXTS[*]}"
echo "-----------------------------------"
# 生成扩展名匹配条件(用于 find 命令)find_ext_args=()
for ext in "${VIDEO_EXTS[@]}"; do
find_ext_args+=(-o -name "*.$ext")
done
find_ext_args=("${find_ext_args[@]:1}") # 移除第一个 "-o"
# 遍历所有目录(从深层到浅层排序,确保先处理子目录)find . -type d | sort -r | while read -r dir; do
# 跳过当前目录(.)["$dir" = "."] && continue
# 检查当前目录及其所有子目录是否有视频文件
if find "$dir" -type f \("${find_ext_args[@]}" \) -print -quit | grep -q .; then
echo "[保留] $dir(包含视频文件)"
else
echo "[删除] $dir(无任何视频文件)"
rm -rf "$dir"
fi
done
echo "-----------------------------------"
echo "深度清理完成!"
三、通过 SSH 执行脚本
1. 打开极空间 SSH 功能:
- 进入 系统设置 → 远程协助 /SSH → SSH
- 开启 SSH 服务(注意关闭 ” 仅限局域网访问 ” 选项)
2. 使用 SSH 客户端连接(推荐 FinalShell):
下载 FinalShell: FinalShell Windows 版 (12MB)
3. 输入 sudo- i 获取最高权限,然后在输入第二步的代码,即可执行等待执行结果如下图。
# 获取 root 权限 sudo -i [输入密码] # 粘贴脚本代码(立即自动执行)# 执行完成后输入两次 cd 返回初始状态
重要注意事项
- ❗ 数据无价!操作前务必确认目标目录
- ❗ 切勿选择包含个人资料的目录(如相册)
- ❗ 建议先在测试目录验证脚本效果
- ❗ 极空间用户请确保 SSH 仅在局域网内访问
正文完