#!/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。"