commit
This commit is contained in:
Executable
+57
@@ -0,0 +1,57 @@
|
||||
|
||||
|
||||
#!/bin/bash
|
||||
|
||||
# ----------------------------------
|
||||
# 参数配置(可修改)
|
||||
# ----------------------------------
|
||||
SOURCE_DIR="/vol4/1000/USBD2/MediaLibrary/Mdsm920/本地磁盘/fnOS/strms/电影/动画电影" # 要扫描的目录(网盘映射路径)
|
||||
OUTPUT_FILE="/vol4/1000/USBD2/MediaLibrary/strm_stats.txt" # 结果输出文件
|
||||
SLEEP_INTERVAL=0.5 # 扫描间隔(秒,可调节防止风控)
|
||||
MAX_DEPTH=5 # 最大递归深度(避免扫描过深)
|
||||
|
||||
# ----------------------------------
|
||||
# 检查目录是否存在
|
||||
# ----------------------------------
|
||||
if [[ ! -d "$SOURCE_DIR" ]]; then
|
||||
echo "[ERROR] 目录 $SOURCE_DIR 不存在!"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# ----------------------------------
|
||||
# 初始化统计变量
|
||||
# ----------------------------------
|
||||
declare -A dir_counts # 存储各目录的 .strm 文件数
|
||||
|
||||
echo "开始扫描 $SOURCE_DIR(子目录深度 $MAX_DEPTH,间隔 $SLEEP_INTERVAL 秒)..."
|
||||
|
||||
# ----------------------------------
|
||||
# 递归遍历目录并统计 .strm 文件
|
||||
# ----------------------------------
|
||||
find "$SOURCE_DIR" -type d -print0 | while IFS= read -r -d '' dir; do
|
||||
# 跳过超过深度的目录
|
||||
if [[ $(awk -F/ '{print NF-1}' <<< "${dir#$SOURCE_DIR/}") -ge $MAX_DEPTH ]]; then
|
||||
continue
|
||||
fi
|
||||
|
||||
# 统计当前目录的 .strm 文件数
|
||||
count=$(find "$dir" -maxdepth 1 -type f -name "*.strm" | wc -l)
|
||||
if [[ $count -gt 0 ]]; then
|
||||
dir_counts["${dir#$SOURCE_DIR/}"]=$count
|
||||
echo "[发现] ${dir#$SOURCE_DIR/}: $count 个 .strm 文件"
|
||||
fi
|
||||
|
||||
# 按需暂停(防止网盘风控)
|
||||
sleep $SLEEP_INTERVAL
|
||||
done
|
||||
|
||||
# ----------------------------------
|
||||
# 输出结果
|
||||
# ----------------------------------
|
||||
echo "===== 结果统计 =====" > "$OUTPUT_FILE"
|
||||
for dir in "${!dir_counts[@]}"; do
|
||||
echo "$dir: ${dir_counts[$dir]} 个文件" >> "$OUTPUT_FILE"
|
||||
done
|
||||
|
||||
echo "扫描完成!结果已保存至 $OUTPUT_FILE。"
|
||||
|
||||
Reference in New Issue
Block a user