You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Bash将同名媒体文件移至对应目录(Plex场景)

整理Plex电影目录:将同名视频与字幕归类到独立文件夹

我的Plex电影目录中,所有视频文件(含多种格式)和字幕文件都存放在根目录,需要把每组同名的视频与字幕文件,移动到以该名称命名的独立目录中。

当前目录结构

Alita Battle Angel (2019).en.srt
Alita Battle Angel (2019).m4v
Anchorman The Legend of Ron Burgundy (2004).mp4
Anchorman The Legend of Ron Burgundy (2004).srt
Ant-Man (2015).en.srt
Ant-Man (2015).m4v
Ant-Man and the Wasp (2018).en.srt
Ant-Man and the Wasp (2018).m4v
Aquaman (2018).en.srt
Aquaman (2018).m4v
Argo (2012).en.forced.srt
Argo (2012).en.srt
Argo (2012).m4v
...

期望整理后的结构

Alita Battle Angel (2019)/
├─ Alita Battle Angel (2019).en.srt
└─ Alita Battle Angel (2019).m4v
Anchorman The Legend of Ron Burgundy (2004)/
├─ Anchorman The Legend of Ron Burgundy (2004).mp4
└─ Anchorman The Legend of Ron Burgundy (2004).srt
Ant-Man (2015)/
...

我曾尝试以下脚本在测试目录运行,但担心误操作媒体库,需要更可靠的解决方案:

for f in *; do
[[ -f "$f" ]] || continue
  dir="${f%.*}"
  mkdir "$dir"
  mv "$f" "$dir"
done

可靠解决方案

改进后的脚本

原脚本存在重复创建目录报错、目录名提取逻辑错误的问题,以下是修正后的稳定版本:

# 遍历当前目录下的所有文件
for f in *; do
  # 只处理普通文件,跳过已存在的目录
  [[ -f "$f" ]] || continue

  # 提取电影主名称:去掉第一个点之后的所有内容,得到"电影名(年份)"
  dir_name="${f%%.*}"

  # 目录不存在时才创建,避免重复创建报错
  if [[ ! -d "$dir_name" ]]; then
    mkdir -p "$dir_name"
  fi

  # 移动文件,-n参数确保不覆盖已存在的文件
  mv -n "$f" "$dir_name/"
done

脚本关键说明

  • ${f%%.*}:精准提取电影主名称,比如从Argo (2012).en.forced.srt中得到Argo (2012)
  • mkdir -p:即使目录已存在也不会报错,提升脚本稳定性
  • mv -n:防止意外覆盖目录内已有的文件,增加操作安全性

安全操作流程

  1. 先测试执行效果:将脚本中的mv -n替换为echo mv -n,mkdir -p替换为echo mkdir -p,这样脚本只会输出即将执行的命令,不会实际修改文件,方便确认逻辑是否正确:
for f in *; do
  [[ -f "$f" ]] || continue
  dir_name="${f%%.*}"
  if [[ ! -d "$dir_name" ]]; then
    echo mkdir -p "$dir_name"
  fi
  echo mv -n "$f" "$dir_name/"
done
  1. 备份文件:正式操作前,建议将整个电影目录备份到其他存储位置,避免意外操作导致文件丢失
  2. 测试目录验证:先在和真实目录结构一致的测试目录中执行脚本,确认结果符合预期后,再在Plex的真实媒体目录中运行

特殊情况处理

如果你的电影文件名中包含点(比如The Matrix.1999.mp4),可以用以下逻辑提取目录名:

# 提取到"(年份)"部分,适配文件名含点的情况
dir_name="${f%(*).*}"
dir_name="${dir_name%)}"

内容的提问来源于stack exchange,提问作者Tharros89

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 08:47:44