Files
2026-07-23 20:36:13 +08:00

55 lines
1.8 KiB
Bash

#!/bin/bash
# ----------------------------------
# 参数配置(可修改)
# ----------------------------------
SOURCE_DIR="/path/to/your/directory" # 要扫描的目录(网盘映射路径)
OUTPUT_FILE="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。"